我的芹菜有不同的任务并且只有一个队列。但是这些任务不会一次全部被调用,这取决于用户的要求,被调用的任务会有所不同。所以我写了一段代码来标识要运行的任务,并创建带有参数的子任务并创建它们的列表。将此列表添加到组中并在组上使用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()
问题在于,只有列表中的第一个任务在芹菜中执行并挂起。任何人都可以向我建议为什么仅执行第一个任务而其余部分不执行。