我正在尝试使用 pyramid_celery。我设法运行简单的任务。但是如何使用金字塔运行周期性任务呢?我需要在哪里写 CELERYBEAT_SCHEDULE?
2 回答
将 Pyramid 与 Celery 一起使用不需要使用 pyramid_celery 模块 - 后者只是一个薄集成层,它可能会使您的生活更轻松,也可能不会。在你的情况下,它看起来并没有让你的生活更轻松,对吧?
Pyramid 和 Celery 都有出色且非常详细的文档。pyramid_celery
没有详细的文档。从我阅读的代码来看,它看起来像是从粘贴 .ini 文件中读取 celery 配置(如果是 pyramid_celery_demo 应用程序,则为 development.ini) - 我不知道如何将嵌套的 dict 粘贴到 .ini 文件中,但一些提交消息表明它应该可以工作。
简而言之,您的选择是:
阅读代码
pyramid_celery
并弄清楚它应该如何工作写信给包的作者
放下包并使用普通的 Pyramid 和普通的 Celery,享受漂亮而清晰的文档。
进一步阅读代码表明他们从.ini文件中读取'eval()'字符串值以将它们转换为python结构,所以我假设放置类似的东西
CELERYBEAT_SCHEDULE = "{'key': 'value', 'another_key': 'another_value'}"
应该做的伎俩...
您需要将以下部分添加到项目的 development.ini 文件中
[celerybeat:task1]
task = app1.tasks.Task1
type = crontab
schedule = {"minute": 0}
schedule 是您需要以 cron 样式编写的格式。Task1 是要执行的任务。希望你明白了。有关更多详细信息,请访问此链接。https://pypi.python.org/pypi/pyramid_celery/