Win32中的定时任务

1 投票
7 回答
3438 浏览
提问于 2025-04-15 15:11

我在一台运行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)

这样你也可以设置每分钟不到一次的时间间隔。

撰写回答