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¶
django_periodic_tasks.registry.ScheduleEntry(task, cron_expression, name, timezone=’UTC’, args=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¶
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.