Python Cron — Schedule Tasks with python-crontab and APScheduler
0 */2 * * *Every 2 hours
Next 10 Executions
Times shown in UTC
- Mon, May 18, 202610:00
- Mon, May 18, 202612:00
- Mon, May 18, 202614:00
- Mon, May 18, 202616:00
- Mon, May 18, 202618:00
- Mon, May 18, 202620:00
- Mon, May 18, 202622:00
- Tue, May 19, 202600:00
- Tue, May 19, 202602:00
- Tue, May 19, 202604:00
Field Breakdown
0Minute
0
*/2Hour
Every 2 hours
*Day of Month
Every day
*Month
Every month
*Day of Week
Every day of week
About This Schedule
Python offers several approaches to cron-based scheduling:
1. python-crontab — Manage system crontab:
from crontab import CronTab
cron = CronTab(user='root')
job = cron.new(command='/usr/bin/python3 /app/task.py')
job.setall('0 */2 * * *')
cron.write()2. APScheduler — In-process scheduler:
from apscheduler.schedulers.blocking import BlockingScheduler
from apscheduler.triggers.cron import CronTrigger
scheduler = BlockingScheduler()
scheduler.add_job(my_func, CronTrigger.from_crontab('0 */2 * * *'))
scheduler.start()3. Celery Beat — Distributed task scheduling:
CELERY_BEAT_SCHEDULE = {
'run-every-2-hours': {
'task': 'tasks.my_task',
'schedule': crontab(minute=0, hour='*/2'),
},
}Each approach has different strengths: python-crontab manages the OS crontab, APScheduler runs in-process, and Celery handles distributed scheduling.