4

我的 Python 比我的中文还差(我从来没有见过这么多的笑脸,比我试着说普通话的时候),所以我需要一点帮助:

我想要一些东西来收听 MQ(对于配置中指定的主题)并将消息中继到 dBus,然后收听 dBus(对于配置中指定的主题)并将它们中继回 MQ。从我的结论来看,Python 是合适的。我发现: MQTT.org PYMQiMosquitto

所以这种方法似乎是有效的。现在我正在寻找代码示例。我主要关心的是使代码高效。由于该例程似乎需要在轮询循环中运行,我该如何在 Python 中执行此操作而不会让我的系统陷入困境。

4

4 回答 4

2

I want something to listen to MQ (for topics specified in a configuration) and relay the message to dBus and [...]

Hi stwissel,

I'd also like to mention that the upcoming 1.2 release of PyMQI will provide support for topics and subscriptions. It should really be pretty soon now, I'm fixing up some test cases literally as we speak. Just thought I'd mention it in case you were wondering whether it was possible to use those MQ features with PyMQI; well, not with 1.1 but 1.2 is just around the corner.

Cheers!

于 2011-02-11T15:34:32.523 回答
2

PYMQi 在这里有示例代码:http ://packages.python.org/pymqi/examples.html 为了不进行轮询,您可能需要查看 MQ 触发器。它们使应用程序能够在消息放入队列时启动。

于 2011-01-27T02:52:31.197 回答
1

您需要清楚您使用的是 MQ(WebSphere MQ aka MQSeries)还是 MQTT aka WebSphere MQ Telemetry。

如果您使用的是 MQ,那么一定要查看 PyMQI,它在这一点上看起来很不错——这是一个最近的例子,说明了如何使用它。

对于 MQTT,它是一个轻量级的消息协议,可以在给定正确组件的情况下与 WebSphere MQ 互操作,那么 mosquitto 项目提供了一个 Python API,并且有一些使用它的示例。

恐怕我不是 Python 专家,所以我不完全确定您将如何围绕事物的循环方面进行优化。

于 2011-02-06T16:45:20.770 回答
0

我相信你不需要投票。PyMQI 提供阻塞读取(我认为dBus 也这样做)。

如果您需要同时监听多个连接(例如 dBus 和 MQ),您仍然应该使用阻塞读取,只需在单独的线程中执行每个连接,并可能使用 Python 的Queue.Queue(). 这样一来,您就可以在消息到达后立即收到消息,而不会因轮询而产生延迟。

于 2011-02-10T15:00:12.850 回答