Python调用MQ代理和DBus

时间:2011-01-27 02:40:46

标签: python android-activity dbus mq

我的Python比我的中文更糟糕(我从未见过那么多笑脸而不是我说普通话的人),所以我需要一些帮助:

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

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

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

您需要明确是否使用MQ(WebSphere MQ aka MQSeries)或MQTT aka WebSphere MQ Telemetry。

如果您正在使用MQ,那么一定要查看PyMQI,这点看起来非常不错 - here is a recent example如何使用它。

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

我担心我不是Python专家所以我不完全确定你如何围绕事物的循环方式进行优化。

答案 2 :(得分:1)

  

我想听一些东西听MQ(对于配置中指定的主题)   并将消息转发给dBus和[...]

嗨stwissel,

我还想提一下,即将发布的PyMQI 1.2版本将为主题和订阅提供支持。它应该很快就会很快,我正在修理一些测试用例。我想如果你想知道是否有可能将这些MQ功能与PyMQI一起使用,我会提到它;好吧,不是1.1,而是1.2即将到来。

干杯!

答案 3 :(得分:0)

我相信你不需要民意调查。 PyMQI提供阻塞读取(我认为dBus也会这样做)。

如果你需要同时监听多个连接(例如dBus和MQ),你仍然应该使用阻塞读取,只需在一个单独的线程中执行每个连接,并且可能使用像Python {{1}这样的东西来传递结果。 }。通过这种方式,您可以在邮件到达时立即收到邮件,而不会受到轮询延迟的影响。