Skip to content

Registry

scheduled_task

django_periodic_tasks.registry.scheduled_task(*, cron, name=None, registry=None, **kwargs)

Decorator that registers a django-tasks Task with the schedule registry.

Apply this decorator after @task() to register the task for periodic execution::

@scheduled_task(cron="/5 * * * ")
@task()
def send_digest(user_id: int) -> None:
    

Args: cron: A 5-field cron expression (e.g. “0 8 * * 1-5”). name: Unique schedule name. Defaults to the task’s module_path. registry: An alternate ScheduleRegistry instance (defaults to the global schedule_registry). **kwargs: Extra options forwarded to :meth:ScheduleRegistry.register (timezone, args, kwargs, queue_name, priority, backend).

ScheduleEntry

class django_periodic_tasks.registry.ScheduleEntry(task, cron_expression, name, timezone=’UTC’, args=, kwargs=, queue_name=’default’, priority=0, backend=’default’)

An immutable record describing a single scheduled task.

Each entry holds the task object, its cron schedule, and the options that will be forwarded to task.using() / task.enqueue() at execution time.

Attributes: task: The django-tasks Task object to enqueue. cron_expression: A standard 5-field cron expression (e.g. /15 * * * ). name: Unique name for this schedule (used as the DB primary key). timezone: IANA timezone name used for cron matching (default “UTC”). args: Positional arguments passed to task.enqueue(). kwargs: Keyword arguments passed to task.enqueue(). queue_name: Task queue name passed to task.using(). priority: Task priority passed to task.using(). backend: Task backend name passed to task.using().

ScheduleRegistry

class django_periodic_tasks.registry.ScheduleRegistry()

Singleton registry for code-defined schedules.

get_entries(self)

Return a copy of all registered schedule entries, keyed by name.

register(self, task, *, cron, name, timezone=’UTC’, args=None, kwargs=None, queue_name=’default’, priority=0, backend=’default’)

Register a task with the given cron schedule.

Args: task: A django-tasks Task object. cron: A 5-field cron expression (e.g. “0 /6 * * ). name: Unique name for this schedule. timezone: IANA timezone for cron matching (default “UTC”). args: Positional arguments for task.enqueue(). kwargs: Keyword arguments for task.enqueue(). queue_name: Queue name for task.using(). priority: Priority for task.using(). backend: Backend name for task.using().

Raises: ValueError: If the cron expression is invalid or the name is already registered.