我有一个使用 zeromq 和 pyzmq 连接器的 python 脚本。脚本确实是一个基本的脚本,它使用 ZMQ_REP 套接字来接收消息,用它做一些小事情然后将其发送回来,所有这些都在无限循环中。没有多线程或其他任何东西。
问题是当我在我的服务器上运行该服务时,大约 15 小时后它停止响应,并且它仍在运行并且端口仍然绑定。因此,当我使用 ZMQ_REQ 套接字向该脚本发送消息时,我没有得到答案。当我重新启动脚本时,它会从 zmq 队列中获取所有未使用的消息,因此我怀疑问题出在 pyzmq 连接器或某些 python 或 zmq 套接字配置中。
我在 2 个不同国家/地区的 2 台不同服务器上尝试了该脚本,其中 1 台运行 ArchLinux,第二台 CentOS,在我的本地机器上,行为是相同的。此外,我尝试运行使用基本 python 套接字的 python 脚本,该套接字只接收字符串消息并将其发送回,它正在工作并在 10 天内毫无问题地发送回消息,而无需重新启动它。所以问题肯定出在 zmq/pyzmq 的某个地方。