0

Celery current_task を使用して、タスクの進行状況を更新しています。99% の確率で動作し、無期限にハングアップします。RabbitMQ バックエンドを使用したセロリ 3.0.x

current_task.update_state(state=state,
            meta= { 'progress' : progress })

[アップデート]

そのため、セロリ 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 に答える