Запуск потребителя kafka с помощью Django

Я установил сервер kafka на AWS, и у меня уже есть проект Django, действующий как производитель, используя kafka-python.

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

Все, что я пробовал до сих пор, либо запускает потребителя и блокирует запуск сервера, либо запускает сервер и блокирует потребителя.

Я сделал нечто подобное в проекте Django: я поместил запуск потребителя в поток демона в метод и вызываю этот метод в файле manage.py.

Я не совсем уверен в последствиях изменения файла manage.py, но он работает нормально.

def run_consumers():
    thread = threading.Thread(name=my_consumer, target=main.lauch_consumer, args=()
    thread.daemon = True
    thread.start()

А в файле manage.py я добавил :

if os.environ.get('RUN_MAIN'):
    # Run consumers once at server start
    run_consumers()
Вернуться на верх