Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个使用 ZMQ 的 python 消息传递应用程序。每个对象都有一个 PUB 和一个 SUB 队列,它们相互连接。在某些特定情况下,我想等待 SUB 队列中的特定消息,将我不感兴趣的消息留待以后处理。
现在,我正在获取所有消息并将那些我对 Python 队列不感兴趣的消息排队,直到找到我正在等待的消息。但他的意思是,在每个处理路由中,我需要首先在 Python 队列中检查旧消息。有没有更好的办法?
zmq 发布者不做任何排队......当没有 SUB 可用于接收这些消息时,它会丢弃消息。
在您的情况下,更好的方法是创建一个只订阅某些感兴趣的消息的通用子。这样,您可以启动所有不同的 SUB(即使在一个线程中并使用 zmq 轮询器),它们都将处理来自 PUB 的消息......
这就是 PUB/SUB 模式的主要用途。Subs 只订阅感兴趣的消息,因此无需在每个循环中循环通过消息队列来查找感兴趣的消息。