【问题标题】:How to store jobs for APScheduler in MySQL db?如何在 MySQL 数据库中存储 APScheduler 的作业?
【发布时间】:2017-04-17 15:05:03
【问题描述】:

我需要将 apscheduler 的所有作业存储在我的 mysql 数据库中,因此 apscheduler 应该每 5 分钟检查一次是否有一些新作业并启动它们,或者如果从数据库中删除了某些作业,则删除它们。问题是,我无法理解,如何更好地存储作业(例如,有些作业可能是 cron,有些可能是间隔触发器,所以它们会有不同的时间设置)。据我了解,apscheduler 支持将作业存储在作业存储中并具有 SQLAlchemyJobStore。在每个文档中,只有 r 个示例,其中 apscheduler 将其作业存储在 db 中。但我需要它从我的数据库中获取工作。 问题是,有没有办法将作业存储在 db 中,所以 apscheduler 可以轻松抓取它们,而且我不需要在我的表中为 job_name、trigger、start_date 等创建 20 列?

【问题讨论】:

  • 您的问题没有说明您对此有什么问题。通过为商店提供数据库的 URL,您已经在使用自己的数据库。您问“如何在数据库中存储作业”,这就是 SQLAlchemyJobStore 的全部内容!那大约 20 列是什么? SQLAlchemyJobStore 仅在其表中使用 3 列。
  • @AlexGrönholm 我需要将作业添加到我的 apscheduler 之外的数据库中,然后我的脚本应该将这些作业添加到 apscheduler。
  • 那APScheduler怎么知道什么时候从睡眠中醒来并检查呢?
  • 好吧,我可以先为 apscheduler 添加作业,例如,它会每小时检查一次是否有新作业。

标签: python apscheduler


【解决方案1】:

您应该考虑通过某些 RPC 服务使调度程序可用,而不是手动向表中插入行。这方面的一个例子可以在here 找到。这将抽象出实现细节,并为未来提供更多证据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 2011-05-14
    相关资源
    最近更新 更多