2013-03-23 65 views
0

我正在使用Celery current_task更新任務進度。它在99%的時間內工作,然後將無限期地掛起。與RabbitMQ的後端芹菜3.0.x的Python芹菜Task.update_state可能永遠阻止

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

[UPDATE]

所以似乎存在於芹菜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: 
      .......... 

調查的溶液

回答

0

貌似這是kombu連接池限制的問題,能夠通過增加broker_pool_limit從默認值

來解決此問題
BROKER_POOL_LIMIT=100