python - 使用 Schedule 在特定时间运行作业

标签 python schedule

我正在尝试安排一些工作,感谢 stackoverflow,我能够找到时间表 ( https://pypi.python.org/pypi/schedule)。

不幸的是,这没有很好的记录。我有一个我尝试运行的作业列表,每个作业在一天中的特定时间应该运行。

for i in jobArray:
    # compareTimes returns a boolean that indicates if it's time to run it, assume it works.
    if compareTimes(i.time):
        # I want to schedule this job for a specific time, i.time
        schedule.every().day.do(job)
while 1:
    schedule.run_pending()
    time.sleep(60)

这是我想出来的。显然这是错误的(它陷入了 while 循环)。 .run_pending() 没有文档,所以我不知道如何修复它以使其正常工作。请协助。

谢谢。

最佳答案

This is what I came up with. Obviously this is wrong (it gets stuck in the while loop). There is no documentation for .run_pending() so I don't know how to fix it to get it to work. Please assist.

这似乎是正确的行为。调度程序每 60 秒检查一次挂起的作业,并且(我假设)在它们进入时运行它们。它应该永远运行,因为你是用 schedule.every().day.do 永久地调度作业(工作)。你的问题是你需要在后台运行这个程序。

如果您对适合生产环境的东西感兴趣,我建议您看看 Celery (我很可能会矫枉过正)或 Python RQ .这些都有详细的文档记录和分发,并且可以开箱即用地在后台运行。

关于python - 使用 Schedule 在特定时间运行作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33659606/

相关文章:

浏览器中的 Python 脚本

c++ - 将 OMP_SCHEDULE 与 #pragma omp 一起用于并行调度(运行时)

node.js - NodeJS如何只在工作时间执行一个功能?

带有工作进程的 python 池

Python:为子进程提供输入

Python 3 Timedelta 溢出错误

python - 固定 yield 数据在线

ejb - 有没有办法在运行时停止/重新启动 ejb 3.1 自动计时器?

powershell - SSRS 和 PowerShell : Create and set schedule for reports?

java - 制作在给定时间间隔内自动运行的代码