django cerlery第二个任务未执行

时间:2018-06-19 12:52:29

标签: django celery scheduled-tasks

我创建了一个芹菜shared_task,该芹菜执行了另外一个shared_task

@shared_task(base=WorkerBase,
             name='analytics.worker-tenant',
             rate_limit='3/m')
def worker_tenant():
    tenants = Tenant.objects.values_list('id', 'contexttenant')

    print('first:worker_tenant')
    for tenant in tenants:
        worker_update_tenant.delay(tenant[0], tenant[1])


@shared_task(name='analytics.worker-update-tenant',
             autoretry_for=(HTTPError, ConnectionError),
             retry_backoff=True)
def worker_update_tenant(id, context, timespan=timedelta(weeks=1)):
    print('worker_update_tenant')

我得到第一个打印first:worker_tenant的输出,但没有第二个打印worker_update_tenant的输出。

我也曾尝试用apply_async(args=(...))调用第二个任务,但这还是行不通的!

1 个答案:

答案 0 :(得分:0)

我设法通过使用带有组的生成器来使其工作:

group(
    worker_update_tenant.s(tenant[0], tenant[1]) for tenant in tenants
).apply_async()