DjangoJobStore случайно удаляет задания

У меня работает apscheduler с DjangoJobStore из команды управления в django, но время от времени некоторые (не все) задания удаляются из базы данных.

Планировщик все еще работает, все еще получает другие задания, но не находит конкретное задание в коде ниже. Когда я проверяю администратора, он удален.

Перезапуск команды исправляет ситуацию, поскольку она добавляет задание обратно на случайный промежуток времени перед повторным удалением.

Я добавил слушателя для EVENT_JOB_REMOVED, но он никогда не срабатывает, и я добавил точки останова во всех методах удаления для DjangoJob, и ни один из них никогда не срабатывает.

функция must_reply просто проверяет почтовый ящик и отправляет ответ по smtp, ничто в ней не обращается к таблице DjangoJob, как и в остальном коде.

must_reply украшен @close_old_connections

Удаление DjangoJobStore в качестве хранилища заданий решает проблему, но, очевидно, я хотел бы использовать его haha

Кто-нибудь сталкивался с этим? И какие есть решения или идеи, чтобы попытаться исправить это.

Это действительно странно.

class Command(BaseCommand):
    help = "Runs APScheduler."

    def handle(self, *args, **options):

            executors = {
                'default': ThreadPoolExecutor(max_workers=10)
            }

            job_defaults = {
                'coalesce': True,
                'misfire_grace_time': 10

            }

            scheduler = BlockingScheduler(timezone=settings.TIME_ZONE, executors=executors, job_defaults=job_defaults)

            scheduler.add_jobstore(DjangoJobStore(), "default")

            scheduler.add_job(
                must_reply,
                IntervalTrigger(
                    seconds=10
                ),
                id="must_reply",
                max_instances=1,
                replace_existing=True,
            )

            try:
                scheduler.start()
            except:
   
                scheduler.shutdown()                
Вернуться на верх