我是 Celery 的新手,我想了解它是否可以解决我的问题。
我需要启动一些任务 (An),然后在完成这些任务后运行另一个任务 (B)。问题是任务 An 是按顺序添加的,我不想在开始第一个任务之前等待添加最后一个任务。我可以将任务 B 配置为在任务 An 完成后执行吗?
现在进入真实场景:
- 任务
An- 处理用户上传的文件(在每个文件上传后添加 上传) - 任务
B- 对处理所有的结果做一些事情 上传的文件
也欢迎其他解决方案
请您参考如下方法:
当然你可以做到这一点,celery canvas 支持很多选项,包括你需要的行为,在一组任务之后运行一个任务......它被称为“Chords”,例如:
from celery import chord
from tasks import task_upload1, task_upload2, task_upload3, final_execution
result = chord(task_upload1.s(), task_upload2.s(), task_upload3.s())(final_execution.s())
get_required_result = result.get()
可以引用this更多详情链接
