Django & Celery: Как запустить поток в AppConfig() только один раз?

У меня есть приложение Django iot_app с Celery и Rabbitmq, где в приложении под названием app_users в AppConfig() запускается поток:

app_users/apps.py:

def start_test_thread():

        th = Thread(target=mqtt_test_function, args=(), daemon=True)
        th.start()

class AppUsersConfig(AppConfig):
    default_auto_field = "django.db.models.BigAutoField"
    name = "app_users"

    def ready(self):

        run_once = os.environ.get('CMDLINERUNNER_RUN_ONCE') 

        if run_once is not None:
            return
        os.environ['CMDLINERUNNER_RUN_ONCE'] = 'True' 

        start_test_thread()

Как вы видите, я проверяю, установлена ли переменная окружения, чтобы запустить поток только один раз. Это работает. Поток запускается только один раз. Проблема в том, что когда я запускаю Celery командой celery -A iot_app worker -l info, поток запускается дважды. Как сделать так, чтобы поток запускался только один раз даже с помощью Celery?

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