主頁 > 知識庫 > Powershell后臺作業(yè)、異步操作實(shí)例

Powershell后臺作業(yè)、異步操作實(shí)例

熱門標(biāo)簽:如何申請400的電話呀 合肥電銷外呼系統(tǒng)供應(yīng)商 地圖標(biāo)注審核周期 沈陽ai電銷智能機(jī)器人 黑暗之魂3地圖標(biāo)注 電商外呼系統(tǒng)排名 AI智能電銷機(jī)器人壞處 蘭州電銷機(jī)器人加盟 電話機(jī)器人對家居行業(yè)幫助大嗎

Powershell是單線程程序且一次只能做一件事情。后臺作業(yè)能額外增加Powershell進(jìn)程在后臺處理作業(yè)。當(dāng)需要程序同時運(yùn)行且數(shù)據(jù)量不是很大時它能很好的解決問題。但從Powershell后臺回傳數(shù)據(jù)是一個非常麻煩的工作,它將浪費(fèi)很多時間。將會導(dǎo)致腳本更慢。

這里有3個并發(fā)執(zhí)行任務(wù):

復(fù)制代碼 代碼如下:

$start = Get-Date

# get all hotfixes
$task1 = { Get-Hotfix }

# get all scripts in your profile
$task2 = { Get-Service | Where-Object Status -eq Running }

# parse log file
$task3 = { Get-Content -Path $env:windir\windowsupdate.log | Where-Object { $_ -like '*successfully installed*' } }

# run 2 tasks in the background, and 1 in the foreground task
$job1 =  Start-Job -ScriptBlock $task1
$job2 =  Start-Job -ScriptBlock $task2
$result3 = Invoke-Command -ScriptBlock $task3

# wait for the remaining tasks to complete (if not done yet)
$null = Wait-Job -Job $job1, $job2

# now they are done, get the results
$result1 = Receive-Job -Job $job1
$result2 = Receive-Job -Job $job2

# discard the jobs
Remove-Job -Job $job1, $job2

$end = Get-Date
Write-Host -ForegroundColor Red ($end - $start).TotalSeconds

上面執(zhí)行全部的任務(wù)消耗了5.9秒。三個任務(wù)的結(jié)果將分別存入$result1, $result2, 和 $result3.
讓我們再繼續(xù)查看相繼在前臺執(zhí)行完命令需要多長時間:

復(fù)制代碼 代碼如下:

$start = Get-Date

# get all hotfixes
$task1 = { Get-Hotfix }

# get all scripts in your profile
$task2 = { Get-Service | Where-Object Status -eq Running }

# parse log file
$task3 = { Get-Content -Path $env:windir\windowsupdate.log | Where-Object { $_ -like '*successfully installed*' } }

# run them all in the foreground:
$result1 = Invoke-Command -ScriptBlock $task1
$result2 = Invoke-Command -ScriptBlock $task2
$result3 = Invoke-Command -ScriptBlock $task3

$end = Get-Date
Write-Host -ForegroundColor Red ($end - $start).TotalSeconds

結(jié)果,這次只花費(fèi)了5.05秒。與后臺作業(yè)幾乎同時完成,所以后臺作業(yè)更適合解決長時間執(zhí)行的任務(wù)。從三個任務(wù)返回的數(shù)據(jù)觀察,好處是這種按順數(shù)在前臺獲得數(shù)據(jù)能減少了執(zhí)行過程的開銷。

您可能感興趣的文章:
  • PowerShell快速創(chuàng)建一個指定大小文件的實(shí)例分享
  • PowerShell 獲取系統(tǒng)信息的函數(shù)

標(biāo)簽:通遼 常州 河北 隴南 黔南 河池 黔南 淮南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Powershell后臺作業(yè)、異步操作實(shí)例》,本文關(guān)鍵詞  Powershell,后臺,作業(yè),異步,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Powershell后臺作業(yè)、異步操作實(shí)例》相關(guān)的同類信息!
  • 本頁收集關(guān)于Powershell后臺作業(yè)、異步操作實(shí)例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章