Skip to main content

一个非常简单的 Celery Beat Scheduler,将状态信息存储在 MongoDB 数据库中。

项目描述

# celerybeatmongo
一个非常简单的 Celery Beat 调度器,它将状态信息存储在 MongoDB 数据库中。

# Install

```
pip install celerybeatmongo
```

# Details

这个项目提供了一个 Celery Beat Scheduler,它使用 MongoDB 来存储调度统计信息(上次运行、运行计数等)。这比在服务器上使用可能被清除或损坏的文件(例如在 Heroku 上)更安全。这个调度器旨在替换 Celery 提供的默认节拍调度器。不过有一些注意事项:

* 只支持间隔调度(目前,很容易添加对 Crontab 和 Solar 的支持)
* 只能将原生 JSON 类型(dict、list、str、number)传递给 `kwargs`、`args` 和任务的`options`

##动机

我开始这个项目是因为我在 Heroku 上运行 Celerybeat,我开始注意到任务被丢弃了。这是因为默认的 Celerybeat 调度程序(`[celery.beat.PersistentScheduler](http://docs.celeryproject.org/en/latest/reference/celery.beat.html#celery.beat.PersistentScheduler)`)使用搁置它添加当前目录的数据库文件。在 Heroku 中,该文件已被清除,因此无法可靠地保存计划数据。使用 `celerybeatmongo.MongoPersistentScheduler` 这不再是问题。

# 示例

请参阅 `examples/celery_worker.py` 以获得一个简单的示例来尝试一下。

运行该示例需要 MongoDB 和 Redis(如果需要,您可以编辑它以使用另一个 Broker 代替 Redis)。
* [安装 Redis](https://redis.io/topics/quickstart)
* [安装 MongoDB](https://docs.mongodb.com/manual/installation/)

您可以运行以下命令来启动示例:

1. 在单独的终端窗口中,启动 Redis:
```shell
$ redis-server # start redis
```

2. 在单独的终端窗口中,启动 MongoDB:
```shell
$ mongod
```

3. 然后启动示例工作者:
```shell
$ pip install redis
$ python examples/celery_worker.py
` ``


# Contribute

如果您需要更多功能或有建议,请添加问题或提出拉取请求。这是一个新项目,应该很容易做出贡献!


项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

celerybeatmongo-0.1.2.tar.gz (5.3 kB 查看哈希)

已上传 source

内置分布

celerybeatmongo-0.1.2-py3-none-any.whl (7.1 kB 查看哈希

已上传 py3