【发布时间】:2021-08-27 03:23:23
【问题描述】:
我正在运行一个 SSE 消费者来更新一些这样的表
@app.task(ignore_result=True)
@worker_ready.connect
def xx_sse_nodes_uptime_info_consumer(sender, **kwargs):
update_tables...
由于某种原因,当我们有 .delay 调用其他任务时,其他任务不会被触发。如果我删除上面的任务,其他任务将正常工作。
另外,当CELERY_TASK_ALWAYS_EAGER=True 和CELERY_TASK_EAGER_PROPAGATES=True 一切正常时。
由于 SSE 消费者使用 stream=True,xx_sse_nodes_uptime_info_consumer 永远不会结束。我不确定为什么这会阻止其他任务,因为有足够的线程。
【问题讨论】: