2014-12-11 3 views
0

RabbitMQ новичок здесь, я надеюсь, что вы можете мне помочь решить проблему:RabbitMQ асинхронного продюсер сценария

У меня есть сторонние программы, которые я хочу использовать в качестве «производителя» для RabbitMQ. Он генерирует много сообщений журнала и может отправлять их только путем запуска сценария оболочки.

Я могу написать сценарий оболочки с использованием python и pika, но AFAI поймет, что создаст новое соединение для каждого отдельного сообщения, отправленного на сервер RabbitMQ. Это похоже на плохую идею - причина, по которой я перехожу на RabbitMQ, в первую очередь заключалась в том, что мое предыдущее решение (сообщения wget) было недостаточно быстрым, чтобы не отставать от оттока журналов.

Я уверен, что есть правильный способ сделать это, но я не могу понять это. Я должен вызывать скрипт каждый раз, когда у меня есть журнал для отправки - я не знаю, как сохранить соединение, или если я даже думаю в правильном направлении.

Заранее спасибо.

ответ

1

Вы можете использовать одно и то же соединение для нескольких операций. Обычно мы его повторно используем.

Но если скрипт призван отправлять каждое сообщение, кроме yupp, он будет создавать (и закрывать) новое соединение каждый раз, что является огромным издержками. Поэтому может возникнуть некоторый скрипт daemon, который устанавливает соединение и ждет на локальном порту сообщений для прокси-сервера rabbitmq.

В качестве альтернативы, может быть, какой-то логстаст-форвардер может решить вашу проблему?

Также дайте RabbitMQ Python examples поближе, если вы новичок в этом и еще не видели его.

+0

Спасибо! Я никогда не думал об использовании локального демона - некоторые поиски привели меня к [Pyro] (http://pythonhosted.org/Pyro4), который, похоже, должен хорошо работать. –

Смежные вопросы