У меня есть проект "A" (Django), в котором я хочу создавать сообщения для отправки брокеру Celery, например Redis .
В другом проекте "B" (обычный python на той же машине) Я хочу запустить работника сервера Celery для наблюдения за сообщениями в брокере и выполнения задач. Задачи определены в B.
Когда задачи завершаются, они сохраняют результаты в redis (также используется как backend-результат).
Когда ответы будут готовы, я хочу, чтобы Джанго был в курсе.
Возможно ли это?
Моя главная проблема заключается в том, что A не должен импортировать задачи из B, поэтому я должен использовать что-то вроде send_task('task_name')
.
На практике я должен создать 2 отдельных экземпляра сельдерея, но запустить только серверный работник?
- экземпляр 1 только отправляет сообщения и читает результат
- экземпляр 2 регистрирует задачи, которые будут выполнены. Задачи в конечном итоге отправляют результат в бэкэнд
Эта архитектура верна или я что-то упустил?