Rabbitmq错误:[Errno 10054]远程主机强行关闭现有连接

Gre*_*reg 10 python rabbitmq kombu

我在Python中使用Kombu来使用持久的RabbitMQ队列.

在Windows中只有一个消费者使用队列.此消费者产生以下错误:

Traceback (most recent call last):
  File ".\consumer_windows.py", line 66, in <module>
    message.ack()
  File "C:\Users\Administrator\Anaconda2\lib\site-packages\kombu\message.py", line 88, in ack
    self.channel.basic_ack(self.delivery_tag)
  File "C:\Users\Administrator\Anaconda2\lib\site-packages\amqp\channel.py", line 1584, in basic_ack
    self._send_method((60, 80), args)
  File "C:\Users\Administrator\Anaconda2\lib\site-packages\amqp\abstract_channel.py", line 56, in _send_method
    self.channel_id, method_sig, args, content,
  File "C:\Users\Administrator\Anaconda2\lib\site-packages\amqp\method_framing.py", line 221, in write_method
    write_frame(1, channel, payload)
  File "C:\Users\Administrator\Anaconda2\lib\site-packages\amqp\transport.py", line 182, in write_frame
    frame_type, channel, size, payload, 0xce,
  File "C:\Users\Administrator\Anaconda2\lib\socket.py", line 228, in meth
    return getattr(self._sock,name)(*args)
error: [Errno 10054] An existing connection was forcibly closed by the remote host
Run Code Online (Sandbox Code Playgroud)

任何时候队列中最多有500条消息.每条消息都很小,但它是一项任务,最多需要10分钟才能完成(尽管每条消息通常需要不到5分钟).

我已经尝试重新启动使用者,RabbitMQ服务器并删除队列,但错误仍然存​​在.

我已经看到了这个问题,答案是从2010年开始,我的rabbitmq.log有不同的条目:

=ERROR REPORT==== 24-Apr-2016::08:26:20 ===
closing AMQP connection <0.6716.384> (192.168.X.X:59602 -> 192.168.Y.X:5672):
{writer,send_failed,{error,timeout}}
Run Code Online (Sandbox Code Playgroud)

rabbitmq-sasl.log中没有最近的事件.

为什么会发生此错误,如何防止它发生?

小智 0

我对托管的 MySQL 服务器也有同样的问题...我开始明白,如果我们长时间打开连接或长时间未修改,就会发生这种情况。如果您的程序打开数据库或任何东西,直到整个程序运行以这样的方式进行:打开数据库写入所有内容,然后关闭并重复

我不知道rabbitmq到底是什么,但我认为你作为标题写的错误可能是因为这个原因