运行多个芹菜任务如何并行?
How can run multiple celery tasks in parallel?
我有两个任务。
@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
)。
您需要使用group
:
The group primitive is a signature that takes a list of tasks that should be applied in parallel.
来自 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 上的文档。
我有两个任务。
@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
)。
您需要使用group
:
The group primitive is a signature that takes a list of tasks that should be applied in parallel.
来自 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 上的文档。