使用Zeromq的Python脚本停止接收消息

时间:2012-04-20 15:13:07

标签: python configuration network-programming zeromq

我有一个使用zeromq和pyzmq连接器的python脚本。脚本实际上是一个基本的脚本,它使用ZMQ_REP套接字来接收消息,用它做一些小事并将其发送回去,所有这些都在无限循环中。没有多线程或其他任何东西。

问题是当我在我的服务器上运行该服务时,大约~15小时后它停止响应,并且它仍在运行且端口仍然绑定。所以当我用ZMQ_REQ套接字向该脚本发送消息时,我没有得到答案。当我重新启动脚本时,它从zmq队列中获取所有未使用的消息,因此我怀疑问题出在pyzmq连接器或某些python或zmq套接字配置中。

我在2个不同国家的2个不同服务器上尝试过该脚本,1个运行ArchLinux,第二个CentOS,并且在我的本地机器上,行为是相同的。此外,我尝试运行python脚本,它使用基本的python套接字,只接收字符串消息并将其发送回来,它正在工作,并且在没有重新启动的情况下发送10天没有问题的消息。所以问题肯定出在zmq / pyzmq的某个地方。

1 个答案:

答案 0 :(得分:1)

邮件的发送频率是多少?您可能需要实施心跳以保持可靠的连接。指南中列出的“Paranoid Pirate”模式效果很好。