我正在使用 Celery current_task 来更新任务进度。它在 99% 的时间内工作,然后将无限期挂起。带有 RabbitMQ 后端的 celery 3.0.x
current_task.update_state(state=state,
meta= { 'progress' : progress })
[更新]
所以 celery amqp 后端似乎出现了死锁,
def _store_result(self, task_id, result, status, traceback=None):
"""Send task return value and status."""
with self.mutex:
with self.app.amqp.producer_pool.acquire(block=True) as pub:
..........
调查解决方案