django-cronjobs is a simple Django app that runs registered cron jobs via a management command.
django-cronjobs should be considered deprecated and unmaintained. It was effectively a shortcut for adding management commands, but that has gotten easier and should be considered the best path forward.
To install django-cronjobs, first install via pip or easy_install, then just
cronjobs to your
Registering a cron job
django-cronjobs includes a decorator to register a cronjob, and discovers
registered jobs in the module
# myapp/cron.py import cronjobs @cronjobs.register def periodic_task(): pass
django-cronjobs will then recognize
periodic_task as a valid job.
Running a cron job
To run a registered cron job, use the
cron management command:
$ ./manage.py cron <job_name>
So to run
periodic_task from above, you could use:
$ ./manage.py cron periodic_task
Additional arguments can be passed after the name of the task.
By default, cron jobs are locked so that only one copy of a given job can be
running at a time. If you need to override this behavior, you can pass the
lock kwarg to
from cronjobs import register @register(lock=False) def my_cron_job(): # Multiple instances of me can run simultaneously.
If you run multiple sets of cronjobs on the same file system and need the locks
to not collide, set
CRONJOB_LOCK_PREFIX to something unique in your Django