github.com
1 vote paulonteri — 1 votes, 0 commentsSource

django-serverless-cron is a Django app with a simpler approach running cron jobs.
This is done through exposing a HTTP endpoint to invoke the jobs that allows you to run any task without having to manage always-on infrastructure.

There is also an option to run jobs via management commands and the Django admin.

Why?

This is essentially a replacement/supplement for a traditional OS ‘cron’ or ‘job scheduler’ system:

  • Serverless cron jobs no-longer a pain. Note that if you have alternatives like django-crontab or celery working well for you, good for you! You probably don’t need this. However, it’s okay to be curious.
  • Schedule jobs to run at a frequency that is less than 1 min. (crontab is limited to 1 min)
  • The machine running crontab is no longer a single point of failure.
  • The problem with the above systems is that they are often configured at the operating system level, which means their configuration is probably not easily ‘portable’ and ‘debug-able’ (if you are developing on Windows, the scheduler works differently from Linux or Unix). Also can not easily be integrated into a development environment.
  • Manually triggered cron jobs. Eg: via the Django Admin.
  • Alternative to cron services that aren’t always available on free (and sometimes paid) web hosting services.
  • Easier access to cron job execution logs and monitoring execution failures.
  • No need to learn crontab. Think of it as a friendlier alternative to traditional cron jobs. Simple cron job creation. No need for cron syntax, no guessing on job frequency. Easy controls.