我正在创建一个 PowerShell 脚本,我将使用Start-Job
. 该作业应该在后台持续运行,直到我告诉它停止使用Stop-Job
. 它应该在具有指定持续时间的计时器上执行 SQL 命令,并将结果输出到作业管道,以便我可以使用Receive-Job
.
现在作业运行正常,但我没有设置它在初始 SQL 命令执行后继续运行(我没有实现计时器)。
在 PowerShell 作业中实现计时器以使作业连续运行的正确方法是什么?
我正在创建一个 PowerShell 脚本,我将使用Start-Job
. 该作业应该在后台持续运行,直到我告诉它停止使用Stop-Job
. 它应该在具有指定持续时间的计时器上执行 SQL 命令,并将结果输出到作业管道,以便我可以使用Receive-Job
.
现在作业运行正常,但我没有设置它在初始 SQL 命令执行后继续运行(我没有实现计时器)。
在 PowerShell 作业中实现计时器以使作业连续运行的正确方法是什么?
虽然可能不是一个计时器,但我只是使用循环做了类似的事情:
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) }
}