A database backed job scheduler for Django RQ
Project description
# Django RQ Scheduler
A database backed job scheduler for Django RQ.
## Requirements
Currently, when you pip install Django RQ Scheduler the following packages are also installed.
* django >= 1.9
* django-model-utils >= 2.4
* django-rq >= 0.9.3 (Django RQ requires RQ >= 0.5.5)
* rq-scheduler >= 0.6.0
* pytz >= 2015.7
* croniter >= 0.3.24
Testing also requires:
* factory_boy >= 2.6.1
* psycopg2 >= 2.6.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](https://github.com/istrategylabs/django-rq-scheduler/issues) .
A database backed job scheduler for Django RQ.
## Requirements
Currently, when you pip install Django RQ Scheduler the following packages are also installed.
* django >= 1.9
* django-model-utils >= 2.4
* django-rq >= 0.9.3 (Django RQ requires RQ >= 0.5.5)
* rq-scheduler >= 0.6.0
* pytz >= 2015.7
* croniter >= 0.3.24
Testing also requires:
* factory_boy >= 2.6.1
* psycopg2 >= 2.6.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](https://github.com/istrategylabs/django-rq-scheduler/issues) .
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file django-rq-scheduler-1.1.3.tar.gz
.
File metadata
- Download URL: django-rq-scheduler-1.1.3.tar.gz
- Upload date:
- Size: 9.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8300d1cdc839fddd7723f4ff0c09089d6d182be0a6bdfed2357b6d8691010fd4 |
|
MD5 | c1fc7f1bf165748e33a422e371cf88ad |
|
BLAKE2b-256 | 21d9d4fa1c0815ae9a45b375080343dad54507227c47e0a9c148efdb4e878da7 |
File details
Details for the file django_rq_scheduler-1.1.3-py2.py3-none-any.whl
.
File metadata
- Download URL: django_rq_scheduler-1.1.3-py2.py3-none-any.whl
- Upload date:
- Size: 12.6 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4418e1397c5ce02ce1653f97ceb5ebf8b87902e072da81a88770a02b725d1461 |
|
MD5 | 78da795b0a551283a4167780a500a56f |
|
BLAKE2b-256 | d62db6bedc60088dc7e940ea116112beeba5c256238df42e76822c0956383d13 |