Skip to content

Instantly share code, notes, and snippets.

@countzero
Last active July 5, 2019 20:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save countzero/ef6c801456146664cf9da120cfec56cd to your computer and use it in GitHub Desktop.
Save countzero/ef6c801456146664cf9da120cfec56cd to your computer and use it in GitHub Desktop.
Execute PowerShell jobs in parallel.
for ($index=1; $index -le 23; $index++) {
$scriptBlock = {
Param (
[string] [Parameter(Mandatory=$true)] $id
)
$durationInMilliseconds = $(Get-Random -Minimum 500 -Maximum 1000)
Start-Sleep -Milliseconds $durationInMilliseconds
Write-Host "Job #${id} completed in ${durationInMilliseconds} ms."
}
Write-Host "Starting Job #${index}..."
Start-Job $scriptBlock -Name "Job #${index}" -ArgumentList $index | Out-Null
}
Get-Job | Receive-job -AutoRemoveJob -Wait
@countzero
Copy link
Author

countzero commented Jul 5, 2019

This will output the job results after all jobs have been completed in the order in which they have finished:

Starting Job #1...
Starting Job #2...
Starting Job #3...
Starting Job #4...
Starting Job #5...
Starting Job #6...
Starting Job #7...
Starting Job #8...
Starting Job #9...
Starting Job #10...
Starting Job #11...
Starting Job #12...
Starting Job #13...
Starting Job #14...
Starting Job #15...
Starting Job #16...
Starting Job #17...
Starting Job #18...
Starting Job #19...
Starting Job #20...
Starting Job #21...
Starting Job #22...
Starting Job #23...
Job #1 completed in 862 ms.
Job #2 completed in 825 ms.
Job #3 completed in 976 ms.
Job #4 completed in 825 ms.
Job #5 completed in 864 ms.
Job #6 completed in 649 ms.
Job #7 completed in 870 ms.
Job #8 completed in 951 ms.
Job #9 completed in 659 ms.
Job #10 completed in 900 ms.
Job #11 completed in 617 ms.
Job #12 completed in 560 ms.
Job #13 completed in 830 ms.
Job #14 completed in 547 ms.
Job #15 completed in 620 ms.
Job #16 completed in 502 ms.
Job #17 completed in 527 ms.
Job #18 completed in 795 ms.
Job #20 completed in 563 ms.
Job #19 completed in 944 ms.
Job #23 completed in 609 ms.
Job #21 completed in 945 ms.
Job #22 completed in 926 ms.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment