python - 在 celery 中使用和弦完成多项任务
问题描述
我在注册任务时遇到问题。这是我的代码,请帮忙。
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={})
推荐阅读
- unity3d - 反正有没有用脚本设置精灵的枢轴?
- javascript - 在 v-for 循环中如何访问我的 vue 实例?
- sql-server - 如何使用经典映射在 SQLAlchemy 中重新定义具有相同名称的表
- node.js - 在 TypeORM 中排序嵌套实体的问题
- imagemagick - 为什么 ghostscript 不喜欢我的 PDF 的 ICC 配置文件?
- android - 对多列具有唯一约束的房间数据库
- javascript - 如何在 qml 画布路径上剪辑 MouseArea
- python - Django反向查找以获取最新信息
- python - 在 Tensorflow 2.0 中重写 tf.contrib.layers.batch_norm
- regex - 使用正则表达式解析 css 背景 url 和选择器