A database backed job scheduler for Django RQ and RQ Scheduler
A database backed job scheduler for Django RQ.
Currently, when you pip install Django RQ Scheduler the following packages are also installed.
Testing also requires:
Use pip to install:
pip install django-rq-scheduler
In settings.py
, add django_rq
and scheduler
to INSTALLED_APPS
:
INSTALLED_APPS = [
...
'django_rq',
'scheduler',
...
]
Configure Django RQ. See https://github.com/ui/django-rq#installation
The last step is migrate the database:
./manage.py migrate
See http://python-rq.org/docs/jobs/ or https://github.com/ui/django-rq#job-decorator
An example:
@job
def count():
return 1 + 1
Sign into the Django Admin site, http://localhost:8000/admin/ and locate the Django RQ Scheduler section.
Click on the Add link for Scheduled Job.
Enter a unique name for the job in the Name field.
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
Choose your Queue. Side Note: The queues listed are defined in the Django Settings.
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.
Click the Save button to schedule the job.
Sign into the Django Admin site, http://localhost:8000/admin/ and locate the Django RQ Scheduler section.
Click on the Add link for Repeatable Job
Enter a unique name for the job in the Name field.
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
Choose your Queue. Side Note: The queues listed are defined in the Django Settings.
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.
Enter an Interval, and choose the Interval unit. This will calculate the time before the function is called again.
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.
Click the Save button to schedule the job.
Please report issues via GitHub Issues .