Skip to main content
 首页 » 编程设计

Python 计划不工作

2025年05月04日32pengyingh

所以我有一个脚本可以使用此处的“计划”模块来安排一次性作业: https://github.com/dbader/schedule

现在,使用 os.System() 从另一个 Python 脚本调用该作业,并通过 Sys.argv[2] 提供一个 JobTime,通常看起来像“13:26”。

def startJob(jobID): 
    #Some Job that runs once 
    sys.exit() 
 
def main(jobID, jobTime): 
    #startJob(jobID) 
    print("Scheduling Scan Job For: %s" % (jobTime)) 
    schedule.every().day.at(jobTime).do(startJob(jobID)) 
    while True: 
        schedule.run_pending() 
        time.sleep(1) 
 
jobID = sys.argv[1] 
jobTime = sys.argv[2] 
 
main(jobID, jobTime) 

但是由于某种原因,作业没有被安排在特定的 jobTime 上,而是在调用脚本后立即开始作业,而不是等待......知道为什么会这样吗?

请您参考如下方法:

你的代码有问题

schedule.every().day.at(jobTime).do(startJob(jobID)) 

它调用 startJob(jobID) 并将其作为参数传递给 do。相反,您可能想要

schedule.every().day.at(jobTime).do(startJob, jobID) 

计划文档说 startJob 将在计划执行时(而不是在计划时间)使用 jobID 调用。 Python 函数首先计算它们的参数,因此您甚至在关心 do 之前就调用了 startJob。 Use the Source Luke!