Skip to main content

A database backed job scheduler for Django RQ with Django

Project description

Django RQ Scheduler

Django CI badge

A database backed job scheduler for Django RQ. Based on original django-rq-scheduler - Now supports Django 4.0.

Requirements

Currently, when you pip install Django RQ Scheduler the following packages are also installed.

  • django >= 3.2
  • django-model-utils >= 4.2.0
  • django-rq >= 2.4.1
  • rq-scheduler >= 0.11.0
  • pytz >= 2021.3
  • croniter >= 1.2.0

Testing also requires:

  • factory_boy >= 2.11.1

Usage

Install

Use pip to install:

pip install django-rq-scheduler

Update Django Settings

  1. In settings.py, add django_rq and scheduler to INSTALLED_APPS:

    
    INSTALLED_APPS = [
    	...
    	'django_rq',
    	'scheduler',
    	...
    ]
    
    
    
  2. Configure Django RQ. See https://github.com/ui/django-rq#installation

Migrate

The last step is migrate the database:

./manage.py migrate

Creating a Job

See http://python-rq.org/docs/jobs/ or https://github.com/ui/django-rq#job-decorator

An example:

myapp.jobs.py

@job
def count():
    return 1 + 1

Scheduling a Job

Scheduled Job

  1. Sign into the Django Admin site, http://localhost:8000/admin/ and locate the Django RQ Scheduler section.

  2. Click on the Add link for Scheduled Job.

  3. Enter a unique name for the job in the Name field.

  4. In the Callable field, enter a Python dot notation path to the method that defines the job. For the example above, that would be myapp.jobs.count

  5. Choose your Queue. Side Note: The queues listed are defined in the Django Settings.

  6. Enter the time the job is to be executed in the Scheduled time field. Side Note: Enter the date via the browser's local timezone, the time will automatically convert UTC.

  7. Click the Save button to schedule the job.

Repeatable Job

  1. Sign into the Django Admin site, http://localhost:8000/admin/ and locate the Django RQ Scheduler section.

  2. Click on the Add link for Repeatable Job

  3. Enter a unique name for the job in the Name field.

  4. In the Callable field, enter a Python dot notation path to the method that defines the job. For the example above, that would be myapp.jobs.count

  5. Choose your Queue. Side Note: The queues listed are defined in the Django Settings.

  6. Enter the time the first job is to be executed in the Scheduled time field. Side Note: Enter the date via the browser's local timezone, the time will automatically convert UTC.

  7. Enter an Interval, and choose the Interval unit. This will calculate the time before the function is called again.

  8. In the Repeat field, enter the number of time the job is to be ran. Leaving the field empty, means the job will be scheduled to run forever.

  9. Click the Save button to schedule the job.

Reporting issues or Features

Please report issues via GitHub Issues .

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-rq-scheduler-2022.4.tar.gz (14.1 kB view details)

Uploaded Source

Built Distribution

django_rq_scheduler-2022.4-py3-none-any.whl (16.0 kB view details)

Uploaded Python 3

File details

Details for the file django-rq-scheduler-2022.4.tar.gz.

File metadata

  • Download URL: django-rq-scheduler-2022.4.tar.gz
  • Upload date:
  • Size: 14.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.12

File hashes

Hashes for django-rq-scheduler-2022.4.tar.gz
Algorithm Hash digest
SHA256 9a4a1c0dba150c8711a092063e7d0949a960a8a38165c5b1b1de1278e8671a43
MD5 8d30fc21aa6c2a688d9fe47340a29380
BLAKE2b-256 c148eaeca5f3b4260cdb86780973d34f77c735e21bf82aae1353341764a4cc74

See more details on using hashes here.

File details

Details for the file django_rq_scheduler-2022.4-py3-none-any.whl.

File metadata

File hashes

Hashes for django_rq_scheduler-2022.4-py3-none-any.whl
Algorithm Hash digest
SHA256 4ad76623d1fbceb3f0e88fe1032dda0d9a4a482634616de44b0b3d03c4de0fcc
MD5 24d6f9501912696d418a4146dd0418b0
BLAKE2b-256 d0d51ab72a5a3d94c999567225c22d6a199f169543bdf3316975a53ce9052eb3

See more details on using hashes here.

Supported by

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