# 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).
* [Install Redis](https://redis.io/topics/quickstart)
* [Install MongoDB](https://docs.mongodb.com/manual/installation/)
You can run the following to start the example:
1. In a seperate terminal window, start Redis:
```shell
$ redis-server # start redis
```
2. In a seperate terminal window, start MongoDB:
```shell
$ mongod
```
3. Then start the example worker:
```shell
$ 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!
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).
* [Install Redis](https://redis.io/topics/quickstart)
* [Install MongoDB](https://docs.mongodb.com/manual/installation/)
You can run the following to start the example:
1. In a seperate terminal window, start Redis:
```shell
$ redis-server # start redis
```
2. In a seperate terminal window, start MongoDB:
```shell
$ mongod
```
3. Then start the example worker:
```shell
$ 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!
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
celerybeatmongo-0.1.2.tar.gz
(5.3 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file celerybeatmongo-0.1.2.tar.gz.
File metadata
- Download URL: celerybeatmongo-0.1.2.tar.gz
- Upload date:
- Size: 5.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bb8bd09c208d9cff4a27f09a79fdeecdf09d4fc0cdd885155137715d9b22e765
|
|
| MD5 |
9bb743e1ef2732cb810520112c43f932
|
|
| BLAKE2b-256 |
a51775160346bbbd08639bd84df997a5f32c1f48a453cefa6191fdef15e42642
|
File details
Details for the file celerybeatmongo-0.1.2-py3-none-any.whl.
File metadata
- Download URL: celerybeatmongo-0.1.2-py3-none-any.whl
- Upload date:
- Size: 7.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b93ff8ca0560c350ba9e0355ca7f76108edad6f1db3c00079f6b6c1e01f17d4f
|
|
| MD5 |
b1571e716d4272300d323033b97cf32e
|
|
| BLAKE2b-256 |
e47a7b1952942b345b23f293d18b72df8619fb87373cfda1532227de0424596e
|