Не начинайте поток в ASGI django в файле manage.py
Я использую Django 4.0.1 с расширением channels, поэтому я использую интерфейс ASGI.
В одном из моих приложений я использую метод AppConfig.ready() для запуска потока / цикла asnyc - в частности, пакета paho.mqtt через loop_start(). Если на подписанную тему приходит сообщение, это приложение обрабатывает некоторую бизнес-логику.
Это отлично работает для моего случая - за исключением двух проблем:
- It's also started when I use any
manage.py
command. ./manage.py runserver
(with reload enabled) will spawn a second process, which results in two connections being made - and I only need one.
Хотя я мог бы использовать файловую систему-мутекс для блокирования выполнения второго приложения, я хотел бы знать, есть ли более "Django способ" решения этой проблемы?