У меня есть приложение для узлов, которое помещает сообщения в очередь с помощью RabbitMQ. Затем у меня есть некоторые работники на питоне, использующие сельдерей. Я хочу, чтобы сельдерей автоматически выполнял какую-то задачу, когда новое сообщение отправляется в эту очередь. Как я могу достичь этого? Любая помощь приветствуется.Как выполнить задачу сельдерея, когда новое сообщение приходит в очередь?
0
A
ответ
1
Попробуйте это: В узле Ваше сообщение должно иметь следующий формат
var message = {
"id": "4cc7438e-afd4-4f8f-a2f3-f46567e7ca77",
"task": "task_name",
"args": ["this is my arg"],
"kwargs": {},
"retries": 0
}
И сельдерея ваша задача должна быть определена следующим образом:
@app.task(serializer='json', name='task_name')
def task1(arg1):
print arg1
Также не забудьте настроить маршруты в ваш файл конфигурации сельдерея, например:
app.conf.update(
CELERY_TASK_RESULT_EXPIRES=3600,
CELERY_ROUTES = {'tasks.task1': {'queue': 'queue_name'}},
CELERY_ACCEPT_CONTENT = ['application/json']
)
Смежные вопросы
- 1. Blink DIV, когда новое сообщение приходит в
- 2. Всплывающее окно, когда приходит новое сообщение
- 3. Как удалить задачу сельдерея?
- 4. выполнить действие администратора django как задачу сельдерея
- 5. Как настроить задачу сельдерея
- 6. Как выбрать очередь результатов для задачи сельдерея?
- 7. Завершить задачу сельдерея в задаче
- 8. Как повторить задачу сельдерея, не дублируя его - SQS
- 9. Как добавить задачи в очередь сельдерея?
- 10. завершить текущую задачу сельдерея
- 11. Выполнение задачи Сельдерея, когда не удалось импортировать эту задачу
- 12. Могу ли я назначить задачу сельдерея выполнить между определенным периодом?
- 13. Обновление клиента, закончившего задачу сельдерея
- 14. Как отменить задачу в очереди сельдерея?
- 15. Работник сельдерея с брокером Redis не может выполнить задачу Django
- 16. Как вызвать задачу сельдерея с помощью демона сельдерея
- 17. Как обеспечить задачу Сельдерея Предотвращение перекрытия выполнения задач сельдерея
- 18. Как приостановить или возобновить задачу сельдерея?
- 19. Выполнить некоторый код, когда цепь сельдерея завершена
- 20. Как настроить пользовательский контекст на задачу сельдерея
- 21. rabbitListener выполнить задачу, когда в очереди нет сообщения
- 22. Множественная очередь для демона сельдерея
- 23. Как получить уведомление Gmail, когда приходит новое письмо?
- 24. Как отложить задачу с помощью сельдерея?
- 25. Как сделать панель задач мигающим моим приложением, например Messenger, когда приходит новое сообщение?
- 26. [Spark Streaming] Как загрузить модель каждый раз, когда приходит новое сообщение?
- 27. Как выполнить тяжелую задачу?
- 28. Как вернуть задачу сельдерея в очередь, чтобы он мог взять другого работника?
- 29. Аргументы командной строки переноса сельдерея в Задачу
- 30. ConerseJS: Воспроизведение звука только тогда, когда окно браузера не находится в фокусе, и приходит новое сообщение
Я также разместил этот вопрос на github : https://github.com/celery/celery/issues/2279 –