Skip to main content

An async job scheduler for django using redis/valkey brokers

Project description

Django Tasks Scheduler

Django CI badge badge

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

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 overriden 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:

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_tasks_scheduler-4.0.8.tar.gz (83.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_tasks_scheduler-4.0.8-py3-none-any.whl (139.7 kB view details)

Uploaded Python 3

File details

Details for the file django_tasks_scheduler-4.0.8.tar.gz.

File metadata

  • Download URL: django_tasks_scheduler-4.0.8.tar.gz
  • Upload date:
  • Size: 83.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for django_tasks_scheduler-4.0.8.tar.gz
Algorithm Hash digest
SHA256 6cbb64380b7045ceff583ef9739b13a4896ea75e506ef34e1af287a701b1e108
MD5 224e2aec1d4bf6109666d4e7e5a9a056
BLAKE2b-256 f11df8c9570c415b3a5c0a80e2c4d97ef7215a8aeacc9007934d4828cf77af90

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_tasks_scheduler-4.0.8.tar.gz:

Publisher: publish.yml on django-commons/django-tasks-scheduler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file django_tasks_scheduler-4.0.8-py3-none-any.whl.

File metadata

File hashes

Hashes for django_tasks_scheduler-4.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 ec6e20d2075be48282996204782007ff99759fcf252d843d5dd9e4dd714dec28
MD5 8a0b9384d7596ee2ba152984ea44fa99
BLAKE2b-256 d029da0d7af582923f64adeee2e29ad8b825886cd120c3efcc339809eff52fe3

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_tasks_scheduler-4.0.8-py3-none-any.whl:

Publisher: publish.yml on django-commons/django-tasks-scheduler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page