2014-01-08 3 views
1

는 파워 쉘 스크립트 다음 고려 :PowerShell을 원치 않는 지연 시작 작업 후

$script = { 
    Write-Host "Start job: $(Get-Date)" 
    1..3 | ForEach-Object { 
     Write-Host "Job count: $_ $(Get-Date)" 
     Start-Sleep 1 
    } 
    Write-Host "Stop job: $(Get-Date)" 
} 

Write-Host "Start script: $(Get-Date)" 
$job = Start-Job $script 
1..10 | ForEach-Object { 
    Write-Host "Waiting: $_ $(Get-Date)" 
    Receive-Job $job 
    Start-Sleep 1 
} 
Write-Host "Stop script: $(Get-Date)" 

하고 출력입니다 :

Start script: 01/08/2014 21:57:44 
Waiting: 1 01/08/2014 21:57:44 
Waiting: 2 01/08/2014 21:57:45 
Waiting: 3 01/08/2014 21:57:46 
Waiting: 4 01/08/2014 21:57:47 
Start job: 01/08/2014 21:57:46 
Job count: 1 01/08/2014 21:57:46 
Waiting: 5 01/08/2014 21:57:48 
Job count: 2 01/08/2014 21:57:47 
Waiting: 6 01/08/2014 21:57:49 
Job count: 3 01/08/2014 21:57:48 
Waiting: 7 01/08/2014 21:57:50 
Stop job: 01/08/2014 21:57:49 
Waiting: 8 01/08/2014 21:57:51 
Waiting: 9 01/08/2014 21:57:52 
Waiting: 10 01/08/2014 21:57:53 

스크립트를 시작하고 작업을 시작 사이의 이초 지연이있는 이유는 무엇입니까? 그리고 방지하는 방법?

답변

0

작업은 주 스크립트와 별도의 Powershell 세션에서 실행됩니다. 해당 세션을 생성하고 초기화하는 데는 시간이 걸릴 것입니다. 백그라운드 작업은 장기간 실행되는 작업을 대상으로합니다. 세션을 만드는 데 걸리는 시간이 애플리케이션에서 중요하다면 아마 백그라운드 작업으로 실행하기에 적합하지 않을 것입니다.