gpt4 book ai didi

python - 使用 sched 模块在给定时间运行

转载 作者:太空狗 更新时间:2023-10-29 21:32:27 26 4
gpt4 key购买 nike

我正在编写一个需要在两个给定时间之间运行的 python 脚本。我需要使用 sched 模块中的构建,因为此脚本需要能够直接在任何具有 python 2.7 的机器上运行,以减少配置时间。 (所以 CRON 不是一个选项)

几个变量定义了运行时间的设置,这里set_timer_start=0600set_timer_end=0900是用HHMM写的。我能够在正确的时间停止脚本。

我不知道 sched 究竟是如何工作的(python 文档页面对我来说没有多大意义),但据我所知它在日期/时间(纪元) 而我只希望它在给定时间运行 (HHMM)。

任何人都可以给我一个示例(或链接),说明如何使用调度程序并计算下一次运行日期/时间吗?

最佳答案

如果我的要求正确,您可能需要的是一个循环,它会在每次执行时重新进入队列中的任务。类似的东西:

# This code assumes you have created a function called "func" 
# that returns the time at which the next execution should happen.
s = sched.scheduler(time.time, time.sleep)
while True:
if not s.queue(): # Return True if there are no events scheduled
time_next_run = func()
s.enterabs(time_next_run, 1, <task_to_schedule_here>, <args_for_the_task>)
else:
time.sleep(1800) # Minimum interval between task executions

但是,使用调度程序是 - IMO - 矫枉过正。使用 datetime 对象就足够了,例如,基本实现如下所示:

from datetime import datetime as dt
while True:
if dt.now().hour in range(start, stop): #start, stop are integers (eg: 6, 9)
# call to your scheduled task goes here
time.sleep(60) # Minimum interval between task executions
else:
time.sleep(10) # The else clause is not necessary but would prevent the program to keep the CPU busy.

喂!

关于python - 使用 sched 模块在给定时间运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8401042/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com