Django_apscheduler одно и то же задание выполняется неоднократно - PullRequest
0 голосов
/ 10 октября 2019

Когда я динамически создаю синхронизированную задачу с Django_apscheduler, одна и та же задача будет выполняться несколько раз, временно определяя причину запуска нескольких процессов uwsgi, каждый процесс установил планировщик, и несколько планировщиков одновременно выполняют одну и ту же синхронизированную задачу. Как решить эту проблему

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

        with transaction.atomic():
            iLockStep = Timed_Task.objects.select_for_update().get(id=aTimeTask.id).lock_step
            if (iLockStep != 0):
                return
            aTimeTask.state = GOING
            aTimeTask.lock_step = 1
            aTimeTask.save()
...