Win32中的定时任务
我在一台运行Windows XP SP2的电脑上设置了一个定时任务,目的是让它运行一个Python脚本:
每天
开始时间:凌晨12:03
每天执行任务:每隔1天
开始日期:过去的某个时间
重复任务:每5分钟一次
直到:持续24小时
简单来说,我希望这个脚本每5分钟就能运行一次,永远这样下去。
但我遇到的问题是,这个任务每晚在23:47之后(大概是23:55之后)才会运行,然后就不再运行了。我哪里做错了?或者,有没有其他方法可以替代Windows的定时任务?
7 个回答
1
在第一个面板(标记为“任务”)上,你有没有把“仅在登录时运行”这个选项取消勾选,同时把“启用(计划任务在指定时间运行)”这个选项勾上?
我用Windows的计划任务运行过Python程序,设置跟你展示的非常相似。
1
最近一年左右,我发现一个常见的问题,就是在Windows Server 2003或XP上,计划任务如果勾选了以下任意一个选项,就不会运行:
- “如果电脑在电池供电状态下,不启动任务”
- “如果开始使用电池模式,停止任务”
看起来如果你的电脑是笔记本(有电池)或者服务器上有不间断电源(UPS),Windows会对电力供应搞混淆,不太确定你的电源是否正常。
另外,通常我建议你减少任务的运行时间,或者取消勾选“如果运行超过X分钟就停止任务”的选项,特别是当你频繁运行这个任务的时候。
3
你可以从另一个脚本中安排这个任务,让它每天运行一次,或者每次重启后运行:
#!/usr/bin/env python
import subprocess
interval = 300 # secs
while True:
p = subprocess.Popen(['pythonw.exe', 'foo.py'])
time.sleep(interval)
这样你也可以设置每分钟不到一次的时间间隔。