如何并行运行多个芹菜任务?

时间:2019-10-09 21:56:01

标签: python django celery worker

我有两个任务。

@app.task
def run1():
    while True:
        print('run1')
        time.sleep(5)
    return


@app.task
def run2():
    while True:
        print('run2')
        time.sleep(2)
    return

如何从同一控制台通过一个命令(最好使用不同数量的workers)同时运行这两个任务。

1 个答案:

答案 0 :(得分:1)

您需要使用group

  

组原语是一个签名,其中包含应并行应用的任务列表。

django shell中的示例:

>>> from celery import group
>>> from myapp.tasks import run1, run2
>>>
>>> run_group = group(run1.s(), run2.s())
>>> run_group()
<GroupResult: 06b3e88b-6c10-4ba5-bb32-5005c82eedfe [cc734fbd-3531-45d1-8575-64f4eff35523, 
1075e822-a6e2-4c34-8038-369613ff687d]>

有关更复杂的用法,请参见group上的文档。