【问题标题】:django cerlery second task not executeddjango celery 第二个任务未执行
【发布时间】:2018-11-28 10:48:34
【问题描述】:

我创建了一个 celery 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=(...)) 调用第二个任务,但这也没有用!

【问题讨论】:

    标签: django celery scheduled-tasks


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2013-06-30
      • 1970-01-01
      • 1970-01-01
      • 2015-08-08
      • 1970-01-01
      • 1970-01-01
      • 2014-01-18
      • 2021-08-30
      • 2011-11-22
      相关资源
      最近更新 更多