Skip to main content
 首页 » 编程设计

python之如何在其他(已经启动的)任务完成后运行任务

2025年05月04日8JeffreyZhao

我是 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更多详情链接