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.5.tar.gz (80.9 kB view details)

Uploaded Source

Built Distribution

django_tasks_scheduler-4.0.5-py3-none-any.whl (135.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for django_tasks_scheduler-4.0.5.tar.gz
Algorithm Hash digest
SHA256 e2503a18f566000918b33f051913ff3b761bcc1e1398171538ab52e1402c7d9f
MD5 3786e94bf36e2a983a7eb27d80a0ea19
BLAKE2b-256 d07ca60d8c8889f48f0039b757021198f2d3053be6fd0d762c252c25e316c921

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_tasks_scheduler-4.0.5.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.5-py3-none-any.whl.

File metadata

File hashes

Hashes for django_tasks_scheduler-4.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 2f7a94b128b769b007e352c2c575efcf15b6b2a52a25f348c1b14d4563ba2d07
MD5 f4c3f60aa14b9dde224f192705edd832
BLAKE2b-256 7dd0d2e9693359d129b2685ba4130e3f1d31c8b8fb1ef389f7d18e81ca45ffcb

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_tasks_scheduler-4.0.5-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 Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page