共用方式為


about_Checkpoint-Workflow

適用於: Windows PowerShell 3.0

主題

about_Checkpoint-Workflow

簡短描述

描述 Checkpoint-Workflow 活動,接受工作流程中的檢查點。

詳細描述

Checkpoint-Workflow 活動會採用一個檢查點,以在工作流程中儲存狀態與資料。如果工作流程暫停或中斷,則可從最近的檢查點繼續執行,而不需重新啟動。

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

語法

    Workflow <Verb-Noun>
    {
        Checkpoint-Workflow
    }

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

您可以將 Checkpoint-Activity 檢查點放在工作流程中 CmdletBinding 或 Param 陳述式之後的任意位置。不過,放置檢查點時,請考慮在執行工作流程的電腦上收集資料和寫入到磁碟的效能成本。

確保重新執行中斷的工作流程區段所需的時間大於將檢查點狀態和資料寫入至磁碟所需的時間。

考慮在重要步驟之後採用檢查點,讓工作流程可以繼續執行,而不需重新啟動。例如,在非等冪的命令之後採用一個檢查點。

關於檢查點

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

如果工作流程有意或無意中斷,則 Windows PowerShell® Workflow 會自動使用最新檢查點中的資料來復原並繼續執行工作流程。

當您將工作流程當作工作執行時 (例如藉由使用 AsJob 工作流程一般參數),工作流程檢查點會一直保留到您刪除此工作為止 (例如藉由使用 Remove-Job Cmdlet)。否則,工作流程檢查點會在工作流程完成時遭到刪除。

其他檢查點技術

除了 Checkpoint-Workflow 活動以外,Windows PowerShell Workflow 可支援其他檢查點技術,包括以下項目:

        -- PSPersist workflow common parameter
        -- PSPersist activity common parameter
        -- PSPersistPreference variable (in a workflow)

如需有關將檢查點加入至工作流程的詳細資訊,請參閱「如何將檢查點加入至工作流程」。

範例

下列工作流程包含在完成長時間執行的函式後的 Checkpoint-Workflow 活動呼叫以及共用資料的指令碼。

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

另請參閱

如何將檢查點加入至工作流程 (https://go.microsoft.com/fwlink/?LinkId=261993)