Задачи Celery блокируются клиентом SSE
Я запускаю потребитель 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
никогда не заканчивается. Я не уверен, почему это блокирует другие задачи, ведь потоков достаточно.