Python schedule库设置每日定点执行任务启动后立即运行问题求解
问题根本原因
你在调用do()方法配置任务时,直接执行了目标函数:do(getRegressionData(subredditList))写法会让Python在执行到这行代码时,立刻调用getRegressionData(subredditList),并把该函数的返回值传给do()方法,而非把函数本身注册为定时任务,这就是脚本启动后任务立刻执行的核心原因。
额外修正建议
- schedule库默认使用系统本地时间,你不需要手动换算时区,
at()方法支持传入tz参数直接指定目标时区,示例:schedule.every().day.at("00:00", tz="Etc/GMT+7")就可以直接匹配GMT-7时区的零点,避免手动换算出错。 - 如果你坚持手动换算时间,只要保证
at()方法传入的时间和你系统时区对应即可,不影响定时逻辑的执行。
正确代码示例
import schedule import time # 注册任务时,先传函数本身,函数的入参放在do方法的后续参数位置即可 schedule.every().day.at("00:00", tz="Etc/GMT+7").do(getRegressionData, subredditList) while True: schedule.run_pending() time.sleep(1)
内容的提问来源于stack exchange,提问作者Andrei Muha
相关产品推荐
相关产品推荐

