我正在创建一个PowerShell脚本,我将使用Start-Job
执行该脚本。作业应该在后台持续运行,直到我告诉它停止使用Stop-Job
。它应该在具有指定持续时间的计时器上执行SQL命令,并将结果输出到作业管道,以便我可以使用Receive-Job
检索它们。
现在作业运行正常,但我没有设置在初始SQL命令执行后继续运行(我没有实现计时器)。
在PowerShell作业中实现计时器的正确方法是什么,以便作业连续运行?
答案 0 :(得分:1)
虽然可能不是这样的计时器,但我只是使用循环做了类似的事情:
while ($true) {
"Hello"
[System.Threading.Thread]::Sleep(1000)
}
您可能希望进一步修改脚本以睡眠计算的时间:
while ($true) {
$start = [DateTime]::Now
"Hello"
$end = [DateTime]::Now
#computer difference from initial five minute marker (5*60*1000=300000)
$wait = (5*60*1000) - ($end - $start).TotalSeconds
if ($wait -gt 0) { [System.Threading.Thread]::Sleep($wait) }
}