Python Glossary English

все Python 3timeпонятие

sched.scheduler

планировщик событий

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

Синтаксис

s = sched.scheduler(timefunc=time.monotonic, delayfunc=time.sleep)

run() блокирует поток, пока очередь не опустеет, — это не фоновый таймер; для фоновой работы есть threading.Timer или asyncio. События не повторяются: периодическую задачу функция планирует заново сама. Приоритет (меньше — раньше) решает только при одинаковом времени, а два enter() с равной задержкой получают разное время — для приоритета нужен enterabs с общим моментом. Аргументы передаются кортежем — ('a',) с запятой. Исключение в действии выходит из run(), а остальные события остаются в очереди.

Примеры

import sched, time
s = sched.scheduler(time.monotonic, time.sleep)
log = []
now = time.monotonic()
s.enterabs(now + 0.02, 1, log.append, ('b',))
s.enterabs(now + 0.01, 1, log.append, ('a',))
s.enterabs(now + 0.01, 0, log.append, ('first',))  # то же время, приоритет выше
s.run()  # блокирует, пока очередь не опустеет
print(log)  # → ['first', 'a', 'b']
import sched
s = sched.scheduler()
event = s.enter(10, 1, print, ('never',))
print(s.empty())  # → False
s.cancel(event)
print(s.empty())  # → True

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности