Django Celery Group任务仅执行第一个任务

时间:2018-07-12 07:37:28

标签: python-2.7 django-celery celery-task

我的芹菜有不同的任务并且只有一个队列。但是这些任务不会一次全部被调用,这取决于用户的要求,被调用的任务会有所不同。所以我写了一段代码来标识要运行的任务,并创建带有参数的子任务并创建它们的列表。将此列表添加到组中并在组上使用apply_async()来运行这些任务。

调用任务的代码如下:

tasks_list = []
for provider_name in params['providers']:
    provider = Provider.objects.get(name=provider_name)

    #getting different tasks depending on the provider, each provider has it's own task
    provider_api = provider.api_client()
    for pid in pids:
        sub_params['pid'] = pid
        tasks_list.append(provider_api.subtask((provider.id, action, params), sub_params))

job = group(tasks_list)
result = job.apply_async().join()

问题在于,只有列表中的第一个任务在芹菜中执行并挂起。任何人都可以向我建议为什么仅执行第一个任务而其余部分不执行。

0 个答案:

没有答案