Skip to main content

A simple scheduling system that lets you define jobs that get performed at various intervals. Use a virtual "poor man's cron" or a single Django management command to run the jobs.

Project description

A simple scheduling system that lets you define jobs that get performed at various intervals

About Bambu Cron

Bambu Cron makes it easy to define scheduled tasks that can run as rarely as once a year os often as once a minute. The syadmin only needs to add an extra line to the crontab file belonging to the user with permission to perform actions on the site, and and Bambu Cron will do the rest.

Jobs are defined very simply, and a flag is set to alert the system that a job is running, so that frequent jobs that take longer than a minute to run, don’t run in parallel.

About Bambu Tools 2.0

This is part of a toolset called Bambu Tools. It’s being moved from a namespace of bambu to its own ‘root-level’ package, along with all the other tools in the set. If you’re upgrading from a version prior to 2.0, please make sure to update your code to use bambu_cron rather than bambu_cron.

Installation

Install the package via Pip:

pip install bambu-cron

Add it to your INSTALLED_APPS list:

INSTALLED_APPS = (
    ...
    'bambu_cron'
)

Run manage.py syncdb or manage.py migrate to setup the database tables.

Basic usage

You define cron jobs and register them in a file called cron.py, which you add to your Django app. Only cron.py files found within an app referenced in the INSTALLED_APPS setting will be discovered.

import bambu_cron

class EmailDigestJob(bambu_cron.CronJob):
    frequency = bambu_cron.frequency.DAY

    def run(self, logger):
        # Send a digest email on a daily basis
        ...

bambu_cron.site.register(EmailDigestJob)

This registers the EmailDigestJob job. Once registered, you’ll need to call python manage.py cron --setup to allow Bambu Cron to store details of the job in the database.

Documentation

Full documentation can be found at ReadTheDocs.

Questions or suggestions?

Find me on Twitter (@iamsteadman) or visit my blog.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bambu-cron-3.0.tar.gz (5.9 kB view details)

Uploaded Source

File details

Details for the file bambu-cron-3.0.tar.gz.

File metadata

  • Download URL: bambu-cron-3.0.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for bambu-cron-3.0.tar.gz
Algorithm Hash digest
SHA256 1e990d7b4f064bdcdac1f4b70f424daa3f36b66dad4cd6d04e9075490a2380b9
MD5 74d2199b093467ea4969efb2b0752f8e
BLAKE2b-256 feb4f7af8aa13e2ed7f1a8d25e2c172ab9e5e49671e7435df100239327d94e07

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page