Python 芹菜组按顺序而不是并行运行任务
我正在学习芹菜群的功能Python 芹菜组按顺序而不是并行运行任务,python,celery,Python,Celery,我正在学习芹菜群的功能 @celery_app.task def celery_task(): import time time.sleep(30) print('task 1') @celery_app.task def celery_task2(): import time time.sleep(10) print('task 2') @celery_app.task def test(): from datetime import
@celery_app.task
def celery_task():
import time
time.sleep(30)
print('task 1')
@celery_app.task
def celery_task2():
import time
time.sleep(10)
print('task 2')
@celery_app.task
def test():
from datetime import datetime
print(datetime.now())
job = group(
celery_task.s(),
celery_task2.s()
)
result = job()
result.get()
print(datetime.now())
然而,当我从python控制台运行test()
并在芹菜日志中查看它们时,似乎运行了task1,然后运行了task2
它不应该并行运行吗?整个test()
函数需要30秒才能完成
要启动芹菜工人,我使用命令
cellery-A tasks worker-l=INFO
您确定整个测试()花了30秒吗?如果是这样,我不明白问题出在哪里?如果它不是平行的-它必须需要30秒+10秒=40秒
这里有两件事:
运行worker时使用--并发性
标志,以便它可以处理多个任务。或者,使用多个辅助进程(运行两个进程):
芹菜-任务工作者-l=INFO--concurrency=4
(我不确定默认值是什么-我想这是一个)
使用job.delay()或job异步运行画布。应用_async()
运行异步
哦,是的,谢谢。我没意识到我把密码设置为30秒而不是20秒