Skip to content

sched Module

The sched module provides a general-purpose event scheduler for scheduling function calls at specific times.

Complexity Reference

Operation Time Space Notes
enter() / enterabs() O(log n) O(1) n = scheduled events
run() O(n log n) O(n) Process all events
cancel() O(n) O(1) Remove event; O(n) linear search then heapify

Scheduling Events

Basic Event Scheduling

import sched
import time

scheduler = sched.scheduler(time.time, time.sleep)

def callback(name):
    print(f"Event: {name}")

# Schedule events - O(log n)
scheduler.enter(1, 1, callback, argument=('first',))
scheduler.enter(2, 1, callback, argument=('second',))
scheduler.enter(0.5, 1, callback, argument=('third',))

# Run scheduler - O(n log n)
scheduler.run()

# Output:
# Event: third
# Event: first
# Event: second

Canceling Events

import sched
import time

scheduler = sched.scheduler(time.time, time.sleep)

def callback(msg):
    print(f"Message: {msg}")

# Schedule - O(log n)
event = scheduler.enter(5, 1, callback, argument=('delayed',))

# Cancel - O(n) linear search in queue
scheduler.cancel(event)

# Event never fires
scheduler.run()