Исчезновение заданий APScheduler - PullRequest
0 голосов
/ 05 мая 2020

РЕДАКТИРОВАТЬ: Решено! Проблема никак не связана с APScheduler. Код выполнялся как служба в AWS ECS и каждый раз аварийно завершал работу и перезапускался из-за нехватки памяти. Я не заметил, что он разбился и перезапустился, потому что не было исключения (возможно, весь контейнер разбился), поэтому я просто подумал, что выполняются только первые задания.

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

Код выглядит примерно так:

scheduler = BlockingScheduler()

# Let's say parameters = ['p1', 'p2'...] The real value does not matter
for p in parameters:
    scheduler.add_job(func=func1, args=(p,),  # Sometimes there is more than on argument
                      id=f'{p}-func1',
                      trigger='interval',
                      minutes=5,
                      max_instances=1,
                      misfire_grace_time=60)
    
    # A lot more jobs with function like that: func2, func3...

scheduler.start()

Не для всех функций определены max_instances и misfire_grace_time.

Позже в журналах я вижу намного больше (более чем в 3-4 раза) журналов из первых параметров (p1, p2), чем из последних параметров (p20, p21 ...), хотя они должны быть такими же ( или, по крайней мере, очень близко к нему)

Я подумал, что это может быть связано с количеством рабочих, потому что у меня около 20 параметров и 20 функций, которые могут привести к 400 заданиям, выполняющимся очень близко друг к другу. Поэтому я попытался увеличить его, выполнив:

executors = {
    'default': ThreadPoolExecutor(1000),
    'processpool': ProcessPoolExecutor(1000)
}
scheduler = BlockingScheduler(executors=executors)

Но я не могу сказать, что это помогло.

Есть ли у кого-нибудь идея, что могло бы повлиять на такое c изменение числа работ, выполняемых для каждого параметра, и что я могу сделать, чтобы это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...