Python Django&;芹菜。组不并行执行任务
我试图用不同的参数并行执行一些任务Python Django&;芹菜。组不并行执行任务,python,django,celery,celery-task,Python,Django,Celery,Celery Task,我试图用不同的参数并行执行一些任务 例如,我有以下功能: def printRange(start, stop): for i in range(start, stop, 1): print(i) 我希望它与不同的start和stop并行执行 当我在Django工作时,我的芹菜配置文件如下所示: # celery.py from __future__ import absolute_import, unicode_literals import os from
例如,我有以下功能:
def printRange(start, stop):
for i in range(start, stop, 1):
print(i)
我希望它与不同的start
和stop
并行执行
当我在Django工作时,我的芹菜配置文件如下所示:
# celery.py
from __future__ import absolute_import, unicode_literals
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myProj.settings')
app = Celery('myProj')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
接下来,我有一个类似于示例中的任务:
# tasks.py
import logging
from celery import shared_task
@shared_task
def test_task(task_number, start, stop):
for i in range(start, stop, 1):
logging.info(f'task {task_number} says: {i}')
最后,我使用芹菜的组
并行启动任务:
from celery import group
from .tasks import test_task
subtasks_list = []
for i in range(2):
if i == 0:
start = 0
stop = 50000
else:
start = 50001
stop = 100000
subtasks_list.append(test_task.s(i, start, stop))
group(subtasks_list).apply_async()
正如
parallel
任务的预期输出,我等待了如下日志:
...
task 0 says: 2312
task 0 says: 2313
task 1 says: 7438
task 0 says: 2314
task 1 says: 7435
...
但是,得到的只是线性执行:
task 0 says: 0
task 0 says: 1
...
task 0 says: 50000
task 1 says: 50001
task 1 says: 50002
...
task 1 says: 99999
我做错了什么 附言:我已经看过了,还有一些问题,它们对我没有帮助
task 0 says: 0
task 0 says: 1
...
task 0 says: 50000
task 1 says: 50001
task 1 says: 50002
...
task 1 says: 99999