【问题标题】:Mechanics of the Python schedule libraryPython 调度库的机制
【发布时间】:2023-10-03 08:37:01
【问题描述】:

我想为 Python 使用 Schedule 库,但我不太明白它是如何工作的。

def job():
    % my program here

schedule.every().day.at("10:30").do(job)

如果我从终端运行此代码一次,它是否总是在每天 10:30 运行job?还是我还需要添加类似:

while True:
    schedule.run_pending()
    time.sleep(1)

(我从库的github 获取所有这些代码)

或者我是否需要continuously run the scheduler without blocking the main thread,如图书馆常见问题解答中所述?

我的终端是否总是需要打开?

【问题讨论】:

  • 嗯,你可能不得不像常见问题解答所说的那样做。为什么不使用一些操作系统任务调度程序来每天调用job

标签: python schedule


【解决方案1】:

根据您链接的 github 文档以及 developer interface,您必须将 run_pending() 和一定长度的 sleep 放入无限循环中。

您不需要从另一个线程运行调度程序,除非您在主线程中执行调度以外的其他操作。如果你只是用它来调度,那就没有必要了。

如果你关闭终端,整个程序就会关闭,所以是的,终端需要保持打开状态。

【讨论】:

  • 好吧,你可以否认scripy,例如python schedule_script.py & disown 但如果脚本尝试从标准输入/标准输出读取或写入,它会崩溃。
最近更新 更多