Functions/Base/Wait-OIMJobQueue.ps1
|
Function Wait-OIMJobQueue{ [CmdletBinding()] param ( [Parameter()] $id, $JobChainName, $timeout = 300, $sleep = 3 ) $jobs = "" $remainingtime = $timeout if($null -eq $id){ $safeJobChainName = $JobChainName | ConvertTo-SQLLiteral $where = "JobChainName LIKE '%" + $safeJobChainName +"%' AND Ready2EXE <> 'HISTORY' AND Ready2exe <> 'FINISHED'" }else{ $safeId = $id | ConvertTo-SQLLiteral $where = "UID_JobQueue ='$safeId'" } While($null -ne $jobs -and $remainingtime -ge 0){ Write-Progress "Wait jobqueue with jobchainname:'$JobChainName' jobscount:$( $jobs.count) seconds remaining:$remainingtime" -PercentComplete ((($timeout-$remainingtime)/$timeout )*100) Start-Sleep -Seconds $sleep $remainingtime -= $sleep $jobs = Get-OIMObject -ObjectName JobQueue -Where $where } if ($null -ne $jobs -and $remainingtime -lt 0) { Write-Warning "Timeout waiting for jobqueue with jobchainname:'$JobChainName' ($($jobs.count) job(s) still not finished)" } $jobs } |