This document describes the current stable version of Celery (5.0). For development docs, go here.

celery.beat

The periodic task scheduler.

celery.beat.EmbeddedService(app, max_interval=None, **kwargs)[source]

Return embedded clock service.

Parameters

thread (bool) – Run threaded instead of as a separate process. Uses multiprocessing by default, if available.

class celery.beat.PersistentScheduler(*args, **kwargs)[source]

Scheduler backed by shelve database.

close()[source]
get_schedule()[source]
property info
known_suffixes = ('', '.db', '.dat', '.bak', '.dir')
persistence = <module 'shelve' from '/home/docs/.pyenv/versions/3.7.9/lib/python3.7/shelve.py'>
property schedule
set_schedule(schedule)[source]
setup_schedule()[source]
sync()[source]
class celery.beat.ScheduleEntry(name=None, task=None, last_run_at=None, total_run_count=None, schedule=None, args=(), kwargs=None, options=None, relative=False, app=None)[source]

An entry in the scheduler.

Parameters
args = None

Positional arguments to apply.

default_now()[source]
editable_fields_equal(other)[source]
is_due()[source]

See is_due().

kwargs = None

Keyword arguments to apply.

last_run_at = None

The time and date of when this task was last scheduled.

name = None

The task name

next(last_run_at=None)

Return new instance, with date and count fields updated.

options = None

Task execution options.

schedule = None

The schedule (schedule)

total_run_count = 0

Total number of times this task has been scheduled.

update(other)[source]

Update values from another entry.

Will only update “editable” fields:

task, schedule, args, kwargs, options.

class celery.beat.Scheduler(app, schedule=None, max_interval=None, Producer=None, lazy=False, sync_every_tasks=None, **kwargs)[source]

Scheduler for periodic tasks.

The celery beat program may instantiate this class multiple times for introspection purposes, but then with the lazy argument set. It’s important for subclasses to be idempotent when this argument is set.

Parameters
Entry

alias of ScheduleEntry

add(**kwargs)[source]
adjust(n, drift=- 0.01)[source]
apply_async(entry, producer=None, advance=True, **kwargs)[source]
apply_entry(entry, producer=None)[source]
close()[source]
connection[source]
get_schedule()[source]
property info
install_default_entries(data)[source]
is_due(entry)[source]
logger = <Logger celery.beat (WARNING)>
max_interval = 300

Maximum time to sleep between re-checking the schedule.

merge_inplace(b)[source]
populate_heap(event_t=<class 'celery.beat.event_t'>, heapify=<built-in function heapify>)[source]

Populate the heap with the data contained in the schedule.

producer[source]
reserve(entry)[source]
property schedule

The schedule dict/shelve.

schedules_equal(old_schedules, new_schedules)[source]
send_task(*args, **kwargs)[source]
set_schedule(schedule)[source]
setup_schedule()[source]
should_sync()[source]
sync()[source]
sync_every = 180

How often to sync the schedule (3 minutes by default)

sync_every_tasks = None

How many tasks can be called before a sync is forced.

tick(event_t=<class 'celery.beat.event_t'>, min=<built-in function min>, heappop=<built-in function heappop>, heappush=<built-in function heappush>)[source]

Run a tick - one iteration of the scheduler.

Executes one due task per call.

Returns

preferred delay in seconds for next call.

Return type

float

update_from_dict(dict_)[source]
exception celery.beat.SchedulingError[source]

An error occurred while scheduling a task.

class celery.beat.Service(app, max_interval=None, schedule_filename=None, scheduler_cls=None)[source]

Celery periodic task service.

get_scheduler(lazy=False, extension_namespace='celery.beat_schedulers')[source]
scheduler[source]
scheduler_cls

alias of PersistentScheduler

start(embedded_process=False)[source]
stop(wait=False)[source]
sync()[source]