Powershell-Gas-Multi-thread Arbeitsplätze durch job-Abschluss

Alle tuts die ich gefunden habe, verwenden Sie eine zuvor definierte Zeit schlafen zu Gas jobs.
Ich brauche das Gas zu warten, bis ein Auftrag abgeschlossen ist, bevor Sie beginnen eine neue.
Nur 4 Arbeitsplätze können gleichzeitig ausführen.

Damit Das Skript ausgeführt wird, bis 4, und derzeit hält für 10 Sekunden, dann läuft der rest.
Was ich will, ist für das Skript, sodass nur 4 Aufträge gleichzeitig ausführen und so ein job abgeschlossen ist, wird eine neue gestartet.

Jobs initialisiert werden, die über eine Liste von Server-Namen.

Ist es möglich, dieses Archiv?

$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

InformationsquelleAutor Samuel Meddows | 2014-02-03

Schreibe einen Kommentar