Не начинайте поток в ASGI django в файле manage.py

Я использую Django 4.0.1 с расширением channels, поэтому я использую интерфейс ASGI.

В одном из моих приложений я использую метод AppConfig.ready() для запуска потока / цикла asnyc - в частности, пакета paho.mqtt через loop_start(). Если на подписанную тему приходит сообщение, это приложение обрабатывает некоторую бизнес-логику.

Это отлично работает для моего случая - за исключением двух проблем:

  1. It's also started when I use any manage.py command.
  2. ./manage.py runserver (with reload enabled) will spawn a second process, which results in two connections being made - and I only need one.

Хотя я мог бы использовать файловую систему-мутекс для блокирования выполнения второго приложения, я хотел бы знать, есть ли более "Django способ" решения этой проблемы?

Вернуться на верх