2011-01-27 50 views
4

我的Python是不是我的中國惡化(我從來沒有見過這麼多的笑臉比當我試圖講普通話),所以我需要一點點幫助:Python中調用MQ代理和的DBus

我想要的東西監聽MQ(針對配置中指定的主題),並將該消息轉發至dBus,並返回監聽dBus(針對配置中指定的主題)並將其轉發回MQ。從我的結論來看,Python是合適的。我發現: MQTT.orgPYMQiMosquitto

所以這種方法似乎是有效的。現在我正在查找代碼示例。我主要關心的是使代碼高效。既然看起來程序需要在輪詢循環中運行,我怎麼在Python中做到這一點,而不會讓我的系統陷入困境。

+0

大聲笑,中文比Python難得多。彼得來自中國。 – 2011-07-11 15:32:22

回答

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專家,所以我不完全確定如何在事物的循環方面進行優化。

0

我相信你不需要投票。 PyMQI提供了阻塞讀取(我認爲dBus也是這樣做的)。

如果您需要同時監聽多個連接(例如,dBus和MQ),您仍然應該使用阻塞式讀取,只需在單獨的線程中執行每個連接並可能使用類似Python的Queue.Queue()之類的方式傳遞結果。通過這種方式,您可以在收到郵件後立即收到郵件,而不會受到輪詢的延遲。

1

我想要的東西,聽MQ(用於在配置中指定主題) 並轉達給DBUS和[...]

嗨stwissel,

我會還要提到即將發佈的PyMQI 1.2版本將爲主題和訂閱提供支持。現在應該很快,我正在講一些字面上的測試用例。只是想我會提及它以防萬一您想知道是否可以在PyMQI中使用這些MQ功能;好吧,不是1.1而是1.2即將到來。

乾杯!