Windows任务调度程序终止python脚本,操作码2

时间:2016-04-13 16:26:17

标签: python windows scheduled-tasks windows-scheduler

我有一个Python脚本,旨在运行" forever&#34 ;,在这种情况下,直到每天晚上25点过夜的下一次计划重启。

它的作用是检查时间,然后等待下一个整整一个小时。每小时它将从网页中解析一些数据,将其存储在数据库中,并向外部合作伙伴发送电子邮件。

它使用Windows任务计划程序在系统启动时启动。

它已经运行了几个月,直到最后一个星期天的午夜。电脑在0:25正常重启。之后,日志显示脚本已启动,然后立即终止返回操作码2.绝对没有什么我能想到改变导致这种情况,除了某种类型的Windows更新。

任何可能导致此行为的想法?

这是一个伪代码,删除了所有分散注意力的脚本将在第一次运行时看到的内容:

scriptRunning = True
timeoutDelay = -1

def getTimeoutDelay(lastFetchTime):
    # calculate and return timeout delay in seconds
    delay = (60 - int(lastFetchTime.strftime("%M"))) * 60 - int(lastFetchTime.strftime("%S"))
    return delay
# end def


while scriptRunning:
    if timeoutDelay > -1:
        #Do the magic
        pass

    lastFetchTime = datetime.now()
    timeoutDelay = getTimeoutDelay(lastFetchTime)

#endwhile scriptRunning

如果我手动从命令行启动脚本,脚本似乎按设计运行。

1 个答案:

答案 0 :(得分:0)

您可以将文件放在位于

Startup文件夹中
%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs

这是通常的地方。您也可以在Windows > All Programs > Startup

中找到它

或者,您可以使用cmd命令创建任务以执行您想要的任务,例如,您可以在脚本所在的文件夹中的cmd提示符中运行此任务

schtasks /create /TN "<name of task>" /SC ONLOGON /TR "%cd%\script.py" /Delay 0001:00