Django Serverless Cron
Run cron jobs easily in a serverless environment
Documentation
The full documentation is at https://django-serverless-cron.readthedocs.io.
Features
Run cron jobs easily in a serverless environment.
Quickstart
Installation
Install Django Serverless Cron:
pip install django-serverless-cron
Settings
Add it to your INSTALLED_APPS:
INSTALLED_APPS = (
# ...
'django_serverless_cron'
# ...
)
Add Django Serverless Cron's cron jobs to your settings file:
CRONJOBS = [
# (
# '1_hours', # frequency (days, minutes, hours, weeks) -> in this case, every one hour
# 'mail.jobs.send_mail_function', # path to task/function functions -> in this case, send_mail_function()
# {'kwarg1': 'foo'} # kwargs passed to the function
# ),
(
'1_day',
'your_app.services.your_job_function',
{'kwarg1': 'foo', 'kwarg2': 'bar'}
),
(
'1_hour',
'mail.jobs.send_mail_function',
{"is_bulk": True}
),
]
URL patterns
Add the jobs to your URL patterns:
from django_serverless_cron import urls as django_serverless_cron_urls
urlpatterns = [
# ...
url(r'^', include(django_serverless_cron_urls))
#...
]
Running Jobs
Running via the view/API
Call the /run path to run all jobs:
curl http://localhost:8000/run
or
import requests
x = requests.get('http://localhost:8000/run')
Tests
Does the code actually work?
source <YOURVIRTUALENV>/bin/activate
(myenv) $ pip install tox
(myenv) $ tox
Development commands
pip install -r requirements_dev.txt
invoke -l
Credits
Tools used in rendering this package: