Skip to content

django-commons/django-tasks-scheduler

Django Tasks Scheduler

Django CI badge badge

Documentation can be found in https://django-tasks-scheduler.readthedocs.io/

Introduction Video

Django Tasks Scheduler Introduction

Watch this introduction video to learn about django-tasks-scheduler and its features.

Usage

  1. Update settings.py to include scheduler configuration:
import os from typing import Dict from scheduler.types import SchedulerConfiguration, Broker, QueueConfiguration INSTALLED_APPS = [ # ... 'scheduler', # ... ] SCHEDULER_CONFIG = SchedulerConfiguration( EXECUTIONS_IN_PAGE=20, SCHEDULER_INTERVAL=10, BROKER=Broker.REDIS, CALLBACK_TIMEOUT=60, # Callback timeout in seconds (success/failure/stopped) # Default values, can be overridden per task/job DEFAULT_SUCCESS_TTL=10 * 60, # Time To Live (TTL) in seconds to keep successful job results DEFAULT_FAILURE_TTL=365 * 24 * 60 * 60, # Time To Live (TTL) in seconds to keep job failure information DEFAULT_JOB_TTL=10 * 60, # Time To Live (TTL) in seconds to keep job information DEFAULT_JOB_TIMEOUT=5 * 60, # timeout (seconds) for a job # General configuration values DEFAULT_WORKER_TTL=10 * 60, # Time To Live (TTL) in seconds to keep worker information after last heartbeat DEFAULT_MAINTENANCE_TASK_INTERVAL=10 * 60, # The interval to run maintenance tasks in seconds. 10 minutes. DEFAULT_JOB_MONITORING_INTERVAL=30, # The interval to monitor jobs in seconds. SCHEDULER_FALLBACK_PERIOD_SECS=120, # Period (secs) to wait before requiring to reacquire locks ) SCHEDULER_QUEUES: Dict[str, QueueConfiguration] = { 'default': QueueConfiguration(URL='redis://localhost:6379/0'), }
  1. Update urls.py to include scheduler urls:
from django.urls import path, include urlpatterns = [ # ... path('scheduler/', include('scheduler.urls')), ]
  1. Run migrations:
python manage.py migrate
  1. Check out the admin views:

Local development environment

You can install pre-commit hook in the repo to add it as a git hook by running: pre-commit install. It is configured to check all change files based on configuration in .pre-commit-config.yaml.

Sponsor

django-tasks-scheduler is developed for free.

You can support this project by becoming a sponsor using this link.

Contributing

Interested in contributing, providing suggestions, or submitting bugs? See guidelines at this link.

About

Schedule async tasks using redis protocol. Redis/ValKey/Dragonfly or any broker using the redis protocol can be used.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Contributors 15