Python вызывает брокера MQ и DBus - PullRequest
4 голосов
/ 27 января 2011

Мой Python хуже моего китайского (я никогда не видел столько улыбающихся лиц, чем когда пытаюсь говорить на мандаринском языке), поэтому мне нужна небольшая помощь:

Я хочу что-то послушать MQ (длятемы, указанные в конфигурации) и передать сообщение в dBus, а в ответ прослушать dBus (для тем, указанных в конфигурации) и вернуть их обратно в MQ.Из того, что я возьмусь за вывод, Python подойдет.Я обнаружил: MQTT.org PYMQi и Mosquitto .

Таким образом, подход кажется верным.Сейчас я ищу примеры кода.Моя главная задача - сделать код эффективным.Поскольку кажется, что подпрограмма должна выполняться в цикле опроса, как мне это сделать в Python, не перегружая мою систему.

Ответы [ 4 ]

2 голосов
/ 27 января 2011

PYMQi имеет пример кода здесь: http://packages.python.org/pymqi/examples.html Чтобы не опрашивать, вы можете посмотреть на MQ Triggers. Они позволяют запускать приложение, когда сообщение помещается в очередь.

1 голос
/ 11 февраля 2011

Я хочу что-то послушать MQ (для тем, указанных в конфигурации) и передать сообщение в dBus и [...]

Привет stwissel,

Я также хотел бы отметить, что в предстоящем выпуске PyMQI 1.2 будет поддержка тем и подписок. Это действительно должно быть довольно скоро, я исправляю некоторые тестовые случаи буквально, как мы говорим. Просто подумал, что упомяну об этом, если вам интересно, можно ли использовать эти функции MQ с PyMQI; ну, не с 1.1, а 1.2 не за горами.

ура!

1 голос
/ 06 февраля 2011

Вам необходимо четко определить, используете ли вы MQ (WebSphere MQ или MQSeries) или MQTT, или WebSphere MQ Telemetry.

Если вы используете MQ, обязательно посмотрите PyMQI, который выглядит довольно привлекательноэтот пункт - вот недавний пример о том, как его использовать.

Для MQTT, который является легким протоколом сообщений, который может взаимодействовать с WebSphere MQ при наличии правильных компонентов, тогда проект mosquitto предоставляетPython API, и есть несколько примеров , которые его используют.

Боюсь, я не эксперт по Python, поэтому я не совсем уверен, как вы будете оптимизировать вокругзацикленная сторона вещей.

0 голосов
/ 10 февраля 2011

Я считаю, что вам не нужно опрашивать.PyMQI обеспечивает блокировку чтения (и я думаю, что dBus делает это тоже).

Если вам нужно прослушивать более одного соединения одновременно (например, и dBus, и MQ), вам все равно следует использовать блокировку чтения, просто выполняя каждое из них.в отдельном потоке и, возможно, сообщая результаты, используя что-то вроде Queue.Queue() в Python.Таким образом, вы получаете сообщения, как только они приходят, без задержки, налагаемой опросом.

...