小编Ada*_*hue的帖子

运行一组链

我正在尝试在 Celery 中运行一组链。我创建了一组链:

chains = [celery.chain(a.s(i), b.s(), c.s()) for i in items]
Run Code Online (Sandbox Code Playgroud)

return 将其包装在一个组中:

group = celery.group(*chains)
Run Code Online (Sandbox Code Playgroud)

这里的期望是 Celery 随后将安排每个完整链作为独立任务运行。事实上,从逻辑上讲,这似乎就是正在发生的事情。但有两个问题:

  1. 如果链的数量很大,则似乎没有任何东西可以运行。Celery 或rabbitmq 控制台中没有错误。(是的,使用rabbitmq。)

  2. Celery 似乎会执行组中所有任务中每个链的第一个任务,然后再执行每个链的第二个任务。(也就是说,它似乎将链展开成一组任务a、任务b,然后是任务。它们仍然链接到相应的链条目,但是当某些任务比其他任务完成得更快c时,这会引入延迟a

有什么想法吗?

celery

8
推荐指数
1
解决办法
3970
查看次数

标签 统计

celery ×1