Где я должен инициализировать свой MQTT Loop в Django

В настоящее время мой init.py выглядит следующим образом:

from . import mqtt
mqtt.client.loop_start()

Но когда я запускаю его, некоторые действия в цикле выполняются более одного раза. Когда я ставлю перед ним time.sleep(30), все работает как надо. Но я думаю, что это не самое лучшее решение.

Как мне запустить цикл только после того, как все остальное загрузится.

Я пробовал поместить его в готовый AppConfig следующим образом:

from django.apps import AppConfig
from . import mqtt

class PrintConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'print'

    def ready(self):
        mqtt.client.loop_start()

но я получаю следующую ошибку:

RuntimeError("populate() isn't reentrant")

Есть ли что-то, что мне нужно добавить в мои INSTALLED APPS, когда я использую def ready(self): function ?

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