2012-03-06 9 views
1

Я работаю в Django и установил django-сельдерей. Демон сервера сельдерея работает на моем локальном сервере и принимает/выполняет задачи.Нужна помощь, когда моя голова вокруг django-сельдерея и брокера сообщений amqp

Последняя часть для меня - это создание задачи, которая отправляет сообщение брокеру AMPQ на другом сервере. Конфигурация брокера находится в моем файле settings.py, но я не понимаю, как установить соединение с сервером AMPQ и построить сообщение (с полезной нагрузкой с заголовком и json-кодированием.

И вот я пришел задаться вопросом, даже ли мне нужно бежать сельдерей просто отправить сообщение для внешнего AMQP брокера

UPDATE:.

Я использую комбу для публикации на AMQP брокера, и, кажется, я могу успешно создайте соединение издателя с помощью правильного обмена, routing_key и exchange_type. Мое сообщение должно состоять из заголовка с тремя парами ключей: значения и json-encoded paylo объявление. Я не понимаю, как создать сообщение.

ответ

1

Сельдерей имеет архитектуру клиент-сервер. Клиентская сторона публикует сообщения брокерам, а серверная сторона потребляет сообщения от брокера.

Вам не нужно использовать сельдерей для публикации сообщений. Чтобы отправлять сообщения броузеру, просто настройте параметр BROKER_URL в файле конфигурации settings.py и методах задержки вызова/apply_async ваших задач. Сельдерей будет строить и публиковать необходимые сообщения.

Но вам нужно запустить работника сельдерея (с помощью команды celeryd или celeryd_multi) на стороне сервера, чтобы потреблять сообщения от брокера.

+0

Можете ли вы указать мне на хороший пример того, как я могу построить сообщение? – wmfox3

+0

https://github.com/ask/celery/blob/master/celery/app/amqp.py Почему вы хотите использовать сельдерей, если вы планируете создавать сообщения вручную? – mher

+0

Это источник моего замешательства. Мне нужно было отправить сообщения в брокера сообщений amqp и провести исследование для django, которое я провел по пути сельдерея. Хотя это было интересное развлечение, мне действительно нужно, чтобы Kombu отправлял сообщения вручную. – wmfox3