Python计划无效

时间:2015-09-28 03:02:11

标签: python

所以我有一个脚本,使用此处的Schedule模块安排一次性作业:     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,并且一旦脚本被调用就开始工作,而不是等待......任何想法为什么会发生这种情况?

1 个答案:

答案 0 :(得分:3)

您的代码存在问题

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

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

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

计划文档说明startJob将在计划jobID时调用(而不是在计划时间)。 Python函数首先评估它们的参数,因此在您甚至关注startJob之前,您需要调用doUse the Source Luke!