共用方式為


about_Checkpoint工作流程

簡短描述

描述使用工作流程中檢查點的 Checkpoint-Workflow 活動。

LONG DESCRIPTION

Checkpoint-Workflow 活動會採用檢查點,以儲存工作流程中的狀態和數據。 如果工作流程暫停或中斷,則可以從最近的檢查點繼續工作流程,而不必重新啟動。

Checkpoint-Workflow 活動只在工作流程中有效。

語法

Workflow <Verb-Noun>
{
    Checkpoint-Workflow
}

Checkpoint-Workflow 活動不接受任何參數,包括通用參數和工作流程通用參數。

您可以在 CmdletBinding 或 Param 語句之後,將 Checkpoint-Activity 檢查點放在工作流程中的任何位置。 不過,在放置檢查點時,請考慮收集數據並將它寫入執行工作流程之計算機上的磁碟的效能成本。

請確定如果工作流程被中斷,重新執行工作流程區段所花費的時間,大於將檢查點狀態和資料寫入磁碟所花費的時間。

請考慮在重要步驟之後採取檢查點,以便繼續工作流程,而不是重新啟動。 例如,在不是等冪的命令後面取得檢查點。

關於檢查點

檢查點 是工作流程目前狀態的快照,包括變數的目前值,以及至該點為止產生的任何輸出,檢查點會將快照儲存到磁碟。

如果工作流程是刻意或無意間中斷的,Windows PowerShell 工作流程會自動使用最新檢查點中的數據來復原和繼續工作流程。

當您以作業身分執行工作流程時,例如使用 AsJob 工作流程通用參數,工作流程檢查點會保留到您刪除作業之前,例如使用 Remove-Job Cmdlet。 否則,工作流程完成時會刪除工作流程檢查點。

其他檢查點技術

除了 Checkpoint-Workflow 活動之外,Windows PowerShell 工作流程還支援其他檢查點技術,包括下列各項:

  • PSPersist 工作流程一般參數
  • PSPersist 活動一般參數
  • PSPersistPreference 變數 (在工作流程中)

如需將檢查點新增至工作流程的詳細資訊,請參閱。

範例

下列工作流程包含完成長時間執行的函式和共用數據的腳本之後,對 Checkpoint-Workflow 活動的呼叫。

Workflow Test-Workflow
{
    $a = Invoke-LongRunningFunction
    InlineScript { \\Server\Share\Get-DataPacks.ps1 $Using:a}
    Checkpoint-Workflow

    Invoke-LongRunningFunction
    {
        ...
    }
}

另請參閱