Django apscheduler работает трижды в одно и то же время

У меня есть код планировщика, который запускается каждую минуту для отправки уведомлений с помощью fcm... Я использовал операторы печати, чтобы узнать, где проблема, оказалось, что на стороне планировщика, я увидел, что он вызывается трижды. Я вызвал backgroundscheduler в apps.py, который обычно запускается дважды, поэтому я попробовал с: urls, admin, models & views.py, но странно, что эти файлы также печатались дважды. Я не могу понять, почему...

Поэтому я использовал File lock в apps.py:

import os
from django.apps import AppConfig
import threading

class MobileapisConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'MobileApis'

    _lock = threading.Lock()
    _initialized = False

    def ready(self):
        with self._lock:
            if not self._initialized:
                lock_file = '/tmp/scheduler_initialized.lock'
                if not os.path.exists(lock_file):
                    self.initialize_schedulers()
                    with open(lock_file, 'w') as f:
                        f.write('initialized')
                self._initialized = True

    def initialize_schedulers(self):
        from . import seduler
        seduler.start()
        seduler.start1()
        seduler.start2()
        seduler.start3()
        print('Schedulers started')

но это, похоже, не работает, даже если файл создан с текстом... Планировщик регистрируется 3+ раза в одно и то же время... Где лучше всего вызвать планировщик только один раз?

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