【发布时间】: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