0

我正在使用 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:
            ..........

调查解决方案

4

1 回答 1

0

看起来这是kombu连接池限制的问题,能够通过从默认值增加broker_pool_limit来解决这个问题

BROKER_POOL_LIMIT=100
于 2013-03-25T16:56:39.033 回答