我找到的所有教程都使用预定义的休眠时间来限制作业。
我需要限制器在等待作业完成之前暂停启动新作业。
一次只能运行4个作业。
因此,脚本将运行4个作业,当前暂停10秒钟,然后运行其余作业。 我想要的是脚本一次只允许运行4个作业,并且在作业完成后启动新作业。
作业是通过服务器名称列表初始化的。
这是否可能实现?
因此,脚本将运行4个作业,当前暂停10秒钟,然后运行其余作业。 我想要的是脚本一次只允许运行4个作业,并且在作业完成后启动新作业。
作业是通过服务器名称列表初始化的。
这是否可能实现?
$servers = Get-Content "C:\temp\flashfilestore\serverlist.txt"
$scriptBlock = { #DO STUFF }
$MaxThreads = 4
foreach($server in $servers) {
Start-Job -ScriptBlock $scriptBlock -argumentlist $server
While($(Get-Job -State 'Running').Count -ge $MaxThreads) {
sleep 10 #Need this to wait until a job is complete and kick off a new one.
}
}
Get-Job | Wait-Job | Receive-Job