График повторяющихся заданий в Python с указанием единицы времени в качестве переменной
Я использовал отличный schedule
Библиотека для запуска различных заданий, но есть одна вещь, которую я не могу найти.
Код Python для выполнения задания каждые 10 минут выглядит следующим образом:
schedule.every(10).minutes.do(job)
Вопрос: как бы я элегантно включил единицу времени в качестве переменной? Я хочу сделать что-то вроде этого:
interval = 3
time_unit = 'hours'
schedule.every(interval).units(time_unit).do(job)
запускать работу каждые 3 часа. Использование переменных позволит настроить расписание.
За исключением того, что приведенный выше пример не работает: units
член только для чтения значения.
eval
не является безопасным в этом контексте.
1 ответ
Я ответил на свой вопрос. Спасибо тем, кто ответил.
# specify time interval units as a variable in code...
interval = 3
time_unit = 'hours'
schedule.every(interval).set_units(time_unit).do(job)
Исправление в schedule
библиотека (класс Job)- добавьте следующий метод:
def set_units(self, unit):
self.unit = unit if unit[-1] == 's' else unit + 's'
return self