我有一个使用ZMQ的python消息传递应用程序。每个对象都有一个PUB和一个SUB队列,它们相互连接。在某些特定情况下,我想等待SUB队列中的特定消息,留下我不感兴趣的消息以便稍后处理。
现在,我收到所有消息并排队那些我对Python队列不感兴趣的消息,直到找到我正在等待的消息。但他的意思是,在每个处理路由中,我需要先在Python Queue中检查旧消息。还有更好的方法吗?
答案 0 :(得分:1)
zmq发布者不进行任何排队...当没有可用于接收这些消息的SUB时,它会丢弃消息。
在您的情况下,更好的方法是创建一个只会订阅某些感兴趣的消息的通用子。这样你就可以启动所有不同的SUB(即使在一个线程中并使用zmq轮询器),它们都将处理来自PUB的消息......
这是主要用于PUB / SUB模式的内容。 Subs仅订阅感兴趣的消息,因此无需在每个循环中循环查找消息队列以查找感兴趣的消息。