LINUX.ORG.RU

Конфликты задач в apscheduler

 ,


0

1

Есть скрипт на питоне, который получает задания в виде пары «действие» и «день и время в cron формате» и добавляет их в очередь apscheduler. Значение дня может быть wildmark'ом.

Вопрос: как сделать так, чтобы при ситуации, когда в одно и то же время должны выполниться два задания - с шаблоном и с конкретным значением, выполнялось задание с конкретным значением.


Ответ на: комментарий от conformist

Нет, это не совсем то. Вот пример:

...
tasks = [
  ['arg1', '*','10','00'],
  ['arg2', 'mon','10','00']
]
for task in tasks:
  scheduler.add_job(do_task, args=[task[0]], weekday=task[1], hour=task[2], minute=task[3])
...
Т.е. в понедельник 10:00 должен выполниться только вызов do_task с аргументом arg2 (сейчас выполнятся оба), в остальные дни с аргументом arg1. Вопрос в том, нельзя ли как-то указать подобное поведение.

WDWTFWW
() автор топика
Ответ на: комментарий от WDWTFWW

Может, если шаблон покрывает конкретное задание, просто не добавлять его в tasks.

Или что логичнее, если уже есть шаблон, то не надо добавлять конкретное задание.

vvn_black ★★★★★
()
Последнее исправление: vvn_black (всего исправлений: 2)
Ответ на: комментарий от WDWTFWW

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

conformist ★★★
()
Ответ на: комментарий от WDWTFWW

Сделай отдельный job который по понедельникам будет делать что-то одно, а по остальным дням другое.

true_admin ★★★★★
()
Ответ на: комментарий от anonymous

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

WDWTFWW
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.