Модуль sched
определяет один класс sched.scheduler()
, реализующий планировщик событий общего назначения.
import sched sched.scheduler(timefunc=time.monotonic, delayfunc=time.sleep)
timefunc=time.monotonic
- функция, измеряющее время;delayfunc=time.sleep
- функция, задержки времени.Класс планировщика sched.scheduler()
определяет общий интерфейс для планирования событий.
Для работы с "внешним миром" нужны две функции:
timefunc
должна вызываться без аргументов и возвращать число - "время" в любых единицах измерения. delayfunc
должна быть вызвана с одним аргументом, совместимым с возвращаемым значением timefunc
и должна задерживать такое же количество единиц времени. Функция delayfunc
также будет вызываться с аргументом 0
после выполнения каждого события, чтобы дать другим потокам возможность работать в многопоточных приложениях.
Класс планировщика sched.scheduler()
можно безопасно использовать в многопоточных средах.
Дополнительно смотрите методы и атрибуты объекта планировщика scheduler
.
sched.scheduler()
:>>> import sched, time >>> s = sched.scheduler(time.time, time.sleep) >>> def print_time(a='default'): ... print("From print_time", time.time(), a) ... >>> def print_some_times(): ... print(time.time()) ... s.enter(10, 1, print_time) ... s.enter(5, 2, print_time, argument=('positional',)) ... s.enter(5, 1, print_time, kwargs={'a': 'keyword'}) ... s.run() ... print(time.time()) ... >>> print_some_times() # 930343690.257 # From print_time 930343695.274 positional # From print_time 930343695.275 keyword # From print_time 930343700.273 default # 930343700.276