django - django cerlery 第二个任务未执行
问题描述
我创建了一个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')
我得到了第一个 print 的输出,first:worker_tenant
但没有第二个print 的输出worker_update_tenant
。
我也尝试过调用第二个任务,apply_async(args=(...))
但这也没有用!
解决方案
我设法通过使用带有组的生成器来使其工作:
group(
worker_update_tenant.s(tenant[0], tenant[1]) for tenant in tenants
).apply_async()
推荐阅读
- sql-server - 使用触发器维护日志以进行更新
- javascript - 将 Input 的值传递给 handleMethod
- c++ - 链接提取和插入,包围
- regex - 与正则表达式查询相关
- reactjs - 如何将函数转换为 es6 箭头函数
- ssl - dotnet core 3.0 SSL 在调试模式下工作,但不适用于 `dotnet run`
- bash - 使用 jq 从 json 中获取数组
- php - 从 xlxs 文件插入 10000 行时,浏览器抛出错误“糟糕,出了点问题” - laravel
- r - 识别分组数据上的重叠日期间隔
- ruby-on-rails - 检查父或关联中是否存在值并在Rails中获取父对象