我正在开发一个 (Python/pyzmq)) ZeroMQ 服务器,它通过 PULL 套接字接收传入的消息。
现在,有时我会彻底重启服务器以升级它。我的问题是;我可以以某种方式停止接收传入消息(在我的 PULL 套接字上),以便重新启动不会丢失任何消息吗?我正在考虑诸如close()
不调用套接字,然后recv()
输入最后一条消息之类的方法。可能将高水位线设置为零会产生类似的结果。
如果上述解决方案都不起作用,我可能最好将我的套接字转换为 REP 套接字并逐个获取每条消息,每次都 ACK:ing 它们。由于这将是同步的,我想这会更慢。