APScheduler

3.11.2 · active · verified Fri Mar 27

Advanced Python Scheduler — schedule Python functions to run at specified times or intervals. Current stable version is 3.11.2. A completely rewritten 4.x is in pre-release with a different API (apscheduler.Scheduler instead of BackgroundScheduler, etc.) — 4.x is NOT installed by pip install APScheduler. Two concurrent stable lines: use 3.x for production. The 3.x vs 4.x API confusion is the #1 footgun.

Warnings

Install

Imports

Quickstart

3.x stable API. BackgroundScheduler runs in a thread. Always call start() and shutdown().

from apscheduler.schedulers.background import BackgroundScheduler
from datetime import datetime
import time

def job_function():
    print(f'Job ran at {datetime.now()}')

# BackgroundScheduler runs in a daemon thread
scheduler = BackgroundScheduler()

# Interval trigger
scheduler.add_job(job_function, 'interval', seconds=10, id='my_job')

# Cron trigger (every day at 9:30am)
scheduler.add_job(job_function, 'cron', hour=9, minute=30)

# Date trigger (one-off)
from datetime import timedelta
scheduler.add_job(
    job_function,
    'date',
    run_date=datetime.now() + timedelta(minutes=1)
)

# Must start explicitly
scheduler.start()
print('Scheduler started. Press Ctrl+C to exit.')

try:
    while True:
        time.sleep(1)
except KeyboardInterrupt:
    scheduler.shutdown()

view raw JSON →