首页 > 解决方案 > 芹菜一次调用多任务

问题描述

我正在使用 celery 来实现异步任务,但是我有大量的异步任务,所以我必须task_func.delay()多次调用,我的代码如下:

注册的任务:

@app.task()
def task1
    ...

@app.task()
def task2
    ...

@app.task()
def task3
    ...

@app.task()
def task4
    ...

@app.task()
def task5
    ...

@app.task()
def task6
    ...

.....
.....

我在我的其他代码中调用 celery 任务,例如在 django 视图中:

task1.delay()
task2.delay()
task3.delay()
task4.delay()
task5.delay()
task6.delay()
......
......

使用上面的代码,每次我创建一个新的 celery 任务 func 时,我都必须用 调用它delay(),有什么办法可以一起调用所有任务吗?

标签: celerycelery-task

解决方案


是的。Canvas: Celery 文档中的设计工作流程部分解释了如何。在您的特定情况下,如果我理解得很好,您需要使用Chain原语。


推荐阅读