更准确地说,这是我试图为我的 Windows 服务创建的故障保护。作为信息,我需要我的 Windows 服务每天以 15 分钟的间隔从服务器提取数据。例如,12:00am、12:15am、12:30am、12:45am、1am...因此,如果我的 PC 在下午 3:04 关闭并重新启动,然后在下午 3:05 重新启动,我需要我的任务调度程序仅在下午 3:15 重新启动 Windows 服务。如果我的 PC 在下午 3:25 关闭并重新启动,我需要我的任务调度程序仅在下午 3:30 启动 Windows 服务。无论什么时间,任务调度程序都必须只运行一次 Windows 服务,具体时间取决于 PC 重新启动的时间,即 __:00/15/30/45 分钟。
以前,我已将任务计划程序设置为“按计划”每天从 12 点开始每隔 15 分钟重新启动 Windows 服务。但是,这会导致从服务器 1 收集并发送到服务器 2 的数据中断。因此,我只需要我的任务计划程序在“启动时”执行 Windows 服务。我该怎么做?任何帮助都非常感谢。
答案1
Windows 服务可以通过服务小程序设置延迟启动,但默认情况下只会延迟执行 2 分钟。
你可以将此延迟设置为 15 分钟,但缺点是
全部定义为延迟启动的系统服务将在 15 分钟后启动,而不是 2 分钟。这是在注册表项
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
DWORD 项中完成的AutoStartDelay
,以毫秒为单位计算。
为了避免这种不便,需要更复杂的解决方案:
您需要使用任务计划程序在启动后运行一项任务,延迟 15 分钟,这将使您的服务使用 sc 配置命令。
您还需要创建一个关闭脚本来禁用该服务。请参阅
在 Windows 家庭版关机或重启之前运行脚本。