在我的 Windows 中,我想安排 Windows 服务每 10 秒启动一次。我尝试使用 Windows 任务计划程序,但它只为我提供了每天、每周和每月重复该服务的选项。
有没有办法可以使用 Windows 任务计划程序安排 Windows 服务每 10 秒启动一次?
我们能做什么呢?
答案1
为此,您应该编写一个 Windows 服务,因为这就是它们的用途。
答案2
Windows 任务计划程序触发器的重复频率不能超过每 1 分钟一次,但您可以设置多个触发器。要每 10 秒运行一次任务,请添加六个触发器。每个触发器都应每天运行任务,每 1 分钟重复一次任务。它们的开始时间应为 12:00:00 AM、12:00:10 AM、12:00:20 AM、12:00:30 AM、12:00:40 AM 和 12:00:50 AM。
虽然很傻,但是却很有效。
答案3
很傻,Windows 没有在任务计划程序中内置此功能。不过,可以使用简单的 powershell 脚本轻松解决这个问题。
$i = 0
for ($i=0; $i -le 4)
Start-Service -Name "servicename"
sleep 10
$i++
}
将其保存为主机上的 *.ps1 文件。然后按照 Adam C 的任务计划程序设置,将其安排为每分钟运行一次。这将每 10 秒启动一次服务(我将其命名为“servicename”)。
答案4
您可以使用自动热键
以下 autohotkey 解决方案比 Windows 任务计划程序解决方案好得多,因为任务计划程序解决方案仅在特定时间起作用。因此,如果您的计算机在该时间之后打开,那么您必须等待时钟到达该时间。这只会在脚本启动后立即运行。
使用 autohotkey,您可以使用 a) 计时器或 b) while true 和 sleep。(注意 - 我已经测试过两者.. 两者看起来都很好.. 顺便说一下,while 循环和 sleep 不会占用 CPU)
假设你的 autohotkey 文件是 blah.ahk
而您想要运行的是一个 bat 文件。
while true
{
Run cmd /c c:\blah\blah.bat,,Hide
sleep 10000 ; 10 seconds
}
bat 文件可以包含命令列表。或者你可以运行 exeRun c:\blah\blah.exe
您可以创建一个包含 行的主 autohotkeys 文件include
,其中每行对应您想要运行的 ahk 脚本。这样可以避免出现大量托盘图标或出现一个巨大的 ahk 文件。
计时器版本如下所示
setTimer, label, 10000 ;10 seconds
return
label:
; do some commands
return