我正在一台Windows 10机器上的Django应用程序中使用RabbitMQ 3.6.0和Celery 3.1.20。所有内容都在同一台计算机上运行。我已经将Celery配置为Acknowledge Late (
我启动了Celery worker,在处理任务50-60秒后,每个工作线程都会因以下消息而失败:
当我查看RabbitMQ日志时,发现如下内容:
我以为这是一个AMQP心跳问题,所以将
CELERY_ACKS_LATE=True
),但是现在出现了连接问题。我启动了Celery worker,在处理任务50-60秒后,每个工作线程都会因以下消息而失败:
(###是任务编号)Couldn't ack ###, reason:ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None)
当我查看RabbitMQ日志时,发现如下内容:
这个错误恰好发生在Celery workers重置连接时。=INFO REPORT==== 10-Feb-2016::22:16:16 === accepting AMQP connection <0.247.0> (127.0.0.1:55372 -> 127.0.0.1:5672)
=INFO REPORT==== 10-Feb-2016::22:16:16 === accepting AMQP connection <0.254.0> (127.0.0.1:55373 -> 127.0.0.1:5672)
=ERROR REPORT==== 10-Feb-2016::22:17:14 === closing AMQP connection <0.247.0> (127.0.0.1:55372 -> 127.0.0.1:5672): {writer,send_failed,{error,timeout}}
我以为这是一个AMQP心跳问题,所以将
BROKER_HEARTBEAT = 15
添加到我的Celery设置中,但这没有任何改变。