Как запустить потребитель kafka в проекте django, чтобы сообщения передавались в проект django
Я запускаю свой потребитель kafka (из библиотеки confluent_kafka) в отдельной команде управления django. (Я сделал это, потому что не смог найти способ запуска потребителя kafka внутри процесса runserver в django без блокировки процесса runserver. Если есть лучший способ сделать это, я буду рад услышать предложения)
Требования к моим проектам следующие:
Проект rest api djnago будет получать сообщения kafka для указанной темы проект создаст экземпляр модели1. Создание модели1 будет распространять дальнейшие действия/логику, такие как создание/обновление других моделей + отправка дальнейших сообщений kafka.
Моя проблема возникает при разработке логики для удовлетворения моих требований. Требование 3 может быть выполнено с помощью сигналов django, и уже есть код, который реализует эти дальнейшие действия/логику. Моя проблема заключается в требовании 2 и немного в 1. Мой потребитель живет в отдельном процессе от моего серверного процесса, поэтому мне нужен способ передачи потребляемых сообщений моему серверному процессу. Каков будет наилучший способ сделать это? Использование кэша потребует, чтобы другой процесс читал этот кэш для обновлений, и это оставит меня в той же ситуации, что и раньше. Тот факт, что код django выполняется синхронно, делает проектирование слушателя очень сложным без запуска его в отдельном процессе. Я что-то упускаю?
ИЛИ Является ли мой подход к попытке использовать сигналы django для выполнения требования 3 ошибочным. Должен ли я отделять+перемещать всю логику, которая может возникнуть после чтения сообщения kafka, в процесс kafka consumer?
Есть ли кто-нибудь, кто сталкивался с этим или похожим случаем использования в django? Как это обычно делается? Я также разрабатываю свою первую микросервисную арку на django, так что если есть недостатки в моем общем дизайне, я буду благодарен за помощь/ресурсы, которые помогут. Спасибо!