Skip to content

sm11963/celerybeatmongo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

celerybeatmongo

A very simple Celery Beat Scheduler that stores status information in a MongoDB database.

Install

pip install celerybeatmongo

Details

This project provides a Celery Beat Scheduler that uses MongoDB to store the schedule stats (last run, run count, etc.). This is safer than using a file on your server which could be cleared or corrupted (on Heroku for example). This scheduler aims to replace the default Beat Scheduler provided with Celery. There are a few caveats though:

  • Only supports interval scheduling (currently, easy to add support for Crontab and Solar)
  • Can only pass native JSON types (dict, list, str, number) to kwargs, args, and options for tasks

Motivation

I started this project because I run Celerybeat on Heroku and I started noticing that tasks were being dropped. This was because the default Celerybeat Scheduler ([celery.beat.PersistentScheduler](http://docs.celeryproject.org/en/latest/reference/celery.beat.html#celery.beat.PersistentScheduler)) uses a shelve database file that it adds the current directory. In Heroku this file was cleared and so the schedule data was not saved reliably. With the celerybeatmongo.MongoPersistentScheduler this is not an issue anymore.

Example

Please see examples/celery_worker.py for a simple example to just try it out.

Running the example requires MongoDB and Redis (you can edit it to use another Broker instead if Redis if you want).

You can run the following to start the example:

  1. In a seperate terminal window, start Redis:
$ redis-server      # start redis
  1. In a seperate terminal window, start MongoDB:
$ mongod
  1. Then start the example worker:
$ pip install redis
$ python examples/celery_worker.py

Contribute

Please add issues or put up pull requests if you need more functionality or have suggestions. Its a new project and should be easy to contribute to!

About

A very simple Celery Beat Scheduler that stores status information in a MongoDB database.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy