The sched Module

The sched module implements an event-scheduler, letting you easily deal, along a single thread of execution, with events that may be scheduled in either a “real” or a “simulated” time-scale. sched supplies a scheduler class.

scheduler

class scheduler(timefunc,delayfunc)

An instance s of scheduler holds two functions to use for all time-related operations. timefunc is callable without arguments to get the current time instant (in any unit of measure); for example, you can pass time.time. delayfunc is callable with one argument (a time duration, in the same units as timefunc) to delay the current thread for that time; for example, you can pass time.sleep. scheduler calls delayfunc(0) after each event to give other threads a chance; this is compatible with time.sleep. By taking functions as arguments, scheduler lets you use whatever “simulated time” or “pseudotime” fits your application’s needs.

A scheduler instance s supplies the following methods.

cancel

s.cancel(event_token)

Removes an event from s’s queue. event_token must be the result of a previous call to s.enter or s.enterabs, and the event must not yet have happened; otherwise, cancel raises RuntimeError.

empty

s.empty( )

Returns True if s’s queue is empty; otherwise, False.

enterabs

s.enterabs(when,priority,func,args)

Schedules a future event (a callback to func(*args)) at time when. when is in the units used by the time functions of s. If several events are scheduled for the same time, s executes them in increasing ...

Get Python in a Nutshell, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.