【问题标题】:Python calling a MQ broker and DBusPython 调用 MQ 代理和 DBus
【发布时间】:2011-06-16 06:41:20
【问题描述】:
我的 Python 比我的中文还差(我从来没有见过这么多笑脸比我试着说普通话时),所以我需要一点帮助:
我想要一些东西来监听 MQ(对于配置中指定的主题)并将消息中继到 dBus,然后监听 dBus(对于配置中指定的主题)并将它们中继回 MQ。从我的结论来看,Python 是合适的。我发现:
MQTT.orgPYMQi和Mosquitto。
所以这种方法似乎是有效的。现在我正在寻找代码示例。我主要关心的是使代码高效。由于该例程似乎需要在轮询循环中运行,我该如何在 Python 中执行此操作而不会让我的系统陷入困境。
【问题讨论】:
标签:
python
android-activity
ibm-mq
dbus
pymqi
【解决方案2】:
我想要听 MQ 的东西(对于配置中指定的主题)
并将消息转发给 dBus 和 [...]
你好,斯威塞尔,
我还想提一下,即将发布的 PyMQI 1.2 版本将提供对主题和订阅的支持。现在应该很快了,我正在修复一些测试用例,正如我们所说的那样。只是想我会提到它,以防您想知道是否可以将这些 MQ 功能与 PyMQI 一起使用;好吧,不是 1.1,而是 1.2 指日可待。
干杯!
【解决方案3】:
您需要清楚自己使用的是 MQ(WebSphere MQ 又名 MQSeries),还是 MQTT 又名 WebSphere MQ Telemetry。
如果您正在使用 MQ,那么请务必查看 PyMQI,它目前看起来非常不错 - here is a recent example 了解如何使用它。
对于 MQTT,它是一个轻量级的消息协议,可以在给定正确组件的情况下与 WebSphere MQ 互操作,那么 mosquitto 项目提供了一个 Python API,并且有一个 few examples 使用它。
恐怕我不是 Python 专家,所以我不完全确定您将如何围绕循环方面进行优化。
【解决方案4】:
我相信你不需要投票。 PyMQI 提供阻塞读取(我认为 dBus 也这样做)。
如果您需要同时监听多个连接(例如,dBus 和 MQ),您仍然应该使用阻塞读取,只需在单独的线程中执行每个连接,并可能使用 Python 的 Queue.Queue() 之类的东西来传达结果。这样一来,您就可以在消息到达后立即收到消息,而不会因轮询而造成延迟。