python - apscheduler 间隔任务未运行

标签 python apscheduler

我希望每天早上 6 点启动我的主要任务。但出于测试目的,我将间隔设置为 5 秒。问题是它似乎永远不会开火。我在 maintask 方法中有一个从未到达的断点,并且没有任何内容打印到控制台。我假设它没有运行。

预计到达时间: 我的代码到达 scheduler.start() 那里停止,因为它正在阻塞。它应该在 5 秒内开始我的主任务,但它从来没有。

python版本是2.7 apscheduler 版本为 3.0

我已经在 Windows 和 Debian 上运行了同样的结果。

这是我的代码。

from apscheduler.schedulers.blocking import BlockingScheduler
import datetime


def maintask():
    print("blah")


def main():

    scheduler = BlockingScheduler()

    print("Scheduling Tasks")
    start_time = (datetime.datetime.now()).replace(hour=6, minute=0, second=0, microsecond=0)
    scheduler.scheduled_job(maintask, 'interval', id="MainTaskid", name="mainTask", start_date=start_time, seconds=5, misfire_grace_time=60)
    print("Tasks Scheduled")
    print("Running Tasks")
    scheduler.start()
    print("Good Bye")
    return 0


if __name__ == "__main__":
    main()

最佳答案

问题是您使用的是 scheduled_job而不是 add_job .

作为User Guide解释说,scheduled_job 主要用作装饰器,作为“方便声明在应用程序运行时不会更改的作业”,而后者是“最常见的方式”添加工作。

在这种特殊情况下,我认为问题在于 add_job 强制唤醒调度程序,而 scheduled_job 没有——你不会认为是相关的,除了您依靠唤醒来强制在启动时运行失火检查而不是明天早上 6 点之前运行的事实。

无论如何,只需将其更改为 add_job 即可解决问题。

关于python - apscheduler 间隔任务未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26497546/

相关文章:

python - 如果您只是操作二进制值序列,您会使用 numpy 吗?

python - 如何在 apscheduler 作业中从类中调用函数?

python - 由于 eventlet Monkey_patch,APScheduler 任务未触发

python - 如何比较 flask 中的两个密码

python - 如何删除 pandas 数据框中的 ['' ]

python - 从 APScheduler 作业发送 python-socket.io 消息导致客户端挂起

当运行的作业太多时,python apscheduler 不一致

python - 在 Flask-APScheduler 作业中查询模型引发应用程序上下文 RuntimeError

python - cx_oracle中Connection.ping()的返回值是多少?

python - 以整数元组为键的 KeyError