python - Celery 动态添加任务到链

标签 python django celery

我在 Django 中使用 celery 3。
我有一个数据库中的工作列表。用户可以启动启动 celery 任务的特定作业。
现在我希望用户能够启动多个作业,它应该将它们添加到 celery 队列中并一个接一个地处理它们,而不是像异步那样并行处理。

我正在尝试使用 celery 创建一个作业调度程序,用户可以在其中选择要执行的作业,并且它们将按顺序执行。
如果我使用 chain()那么我不能动态地向链中添加新任务。

什么是最好的解决方案?

最佳答案

您可以使用更好的原语是 link而不是 chain在 celery 。

来自 documentation :

s = add.s(2, 2)
s.link(mul.s(4))
s.link(log_result.s())

您可以看到这如何允许您通过在循环中迭代所需任务并链接每个任务的签名来动态添加要执行的任务。在循环之后你会想要调用类似 s.apply_async(...) 的东西来执行它们。

关于python - Celery 动态添加任务到链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43987941/

相关文章:

python - 在雪豹上安装mysqldb

redis - celery :如何在撤销后刷新计划任务列表?

python - 当其中的任务失败时,将 Celery 链自动移动到死信队列

django - Django Celery : manage. py celeryd返回 “Unknown Command”

python - 隐藏图中的 y 轴

python - 将表表示为矩阵

Windows 中的 Python 扭曲 OpenSSL 错误

python - 对数据帧的每一行应用函数并同时递增计数器

python - 表单不接受附加参数

css - 仅当从 Windows 查看实时站点时,Webapp Roboto 字体异常