我的Python比我的中文更糟糕(我从未见过那么多笑脸而不是我说普通话的人),所以我需要一些帮助:
我想听一些东西听MQ(对于配置中指定的主题)并将消息转发给dBus,然后听取dBus(对于配置中指定的主题)并将它们转发回MQ。从我的结论来看,Python是合适的。我发现: MQTT.org PYMQi和Mosquitto。
所以这种方法似乎是有效的。现在我正在寻找代码示例。我主要关注的是使代码高效。由于看起来例程需要在轮询循环中运行,我如何在Python中执行此操作而不会阻碍我的系统。
答案 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}这样的东西来传递结果。 }。通过这种方式,您可以在邮件到达时立即收到邮件,而不会受到轮询延迟的影响。