【问题标题】:Replacing Celery Beat "CELERYBEAT_SCHEDULE" with a dynamic source (database)用动态源(数据库)替换 Celery Beat "CELERYBEAT_SCHEDULE"
【发布时间】:2015-11-07 22:51:02
【问题描述】:

Celery docs 中,设置任务计划的标准方法被记录为将计划硬编码到配置文件中。

但是,它也暗示这可以用自定义后端替换。我看到 Django 有一个动态的、数据库驱动的选项,但我正在使用一个简单的 Flask 应用程序来定义我的任务。

有没有人有办法动态加载计划,避免重新启动 celery beat 工作人员的需要,无论是通过从数据库中动态提取计划还是定期从文本文件中重新加载计划?是否像在文本文件中围绕日程安排调用 reload() 一样简单,甚至可以作为它自己的预定 celery 任务?

【问题讨论】:

    标签: python flask celery


    【解决方案1】:

    CELERYBEAT_SCHEDULE 只是 init/config 糖,对象可从以下绑定任务中获得:

    self.app.conf['CELERYBEAT_SCHEDULE']
    

    您可以编写一个周期性任务,从某个后端提取新值。

    【讨论】:

    • 感谢指向源对象的指针。我可以在那里工作 - 谢谢!
    • @PhilSheard 你能分享一下你的解决方案吗?
    猜你喜欢
    • 2012-08-12
    • 2018-05-13
    • 2015-09-07
    • 1970-01-01
    • 2019-11-15
    • 2022-01-20
    • 2021-06-23
    • 2015-01-01
    • 2015-06-04
    相关资源
    最近更新 更多