Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django&;芹菜。组不并行执行任务_Python_Django_Celery_Celery Task - Fatal编程技术网

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