Запуск потребителя 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()