如何解决在芹菜中使用和弦执行多项任务
我在注册任务时遇到问题。这是我的代码,请帮忙。
task.py
from celery_app import app
from celery import chord
from celery import signature
@app.task(bind=True)
def send_email(self):
chorded_tasks = chord(get_expired_users.s(),notify.s()) #these tasks actually exist#
chorded_tasks.get()
runthis.py
import celeryconfig
from celery import Celery
import os
celery = Celery()
celery.config_from_object("celeryconfig")
project_name = os.path.basename(os.getcwd())
celery.send_task(
"tasks.send_email".format(project_name),kwargs={
},args={
},
上面的代码块是我正在运行的代码。它将运行正常,但实际上不会执行任务。我也有一个按计划运行此文件的文件,它也可以正常运行。我只是不明白为什么它不能执行实际任务
解决方法
我相信您为args
参数使用了错误的类型。它应该是一个元组或列表。在您的示例中,您将字典作为args参数传递。那可能会导致您遇到问题。考虑到您的任务没有参数,应该执行以下操作:celery.send_task("tasks.send_email".format(project_name),(),kwargs={})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。