2

我有一个使用 ZMQ 的 python 消息传递应用程序。每个对象都有一个 PUB 和一个 SUB 队列,它们相互连接。在某些特定情况下,我想等待 SUB 队列中的特定消息,将我不感兴趣的消息留待以后处理。

现在,我正在获取所有消息并将那些我对 Python 队列不感兴趣的消息排队,直到找到我正在等待的消息。但他的意思是,在每个处理路由中,我需要首先在 Python 队列中检查旧消息。有没有更好的办法?

4

1 回答 1

1

zmq 发布者不做任何排队......当没有 SUB 可用于接收这些消息时,它会丢弃消息。

在您的情况下,更好的方法是创建一个只订阅某些感兴趣的消息的通用子。这样,您可以启动所有不同的 SUB(即使在一个线程中并使用 zmq 轮询器),它们都将处理来自 PUB 的消息......

这就是 PUB/SUB 模式的主要用途。Subs 只订阅感兴趣的消息,因此无需在每个循环中循环通过消息队列来查找感兴趣的消息。

于 2012-11-02T17:58:38.273 回答