about_Checkpoint-Workflow

概要

ワークフロー内のチェックポイントを受け取るチェックポイント ワークフロー アクティビティについて説明します。

詳細説明

Checkpoint-Workflow アクティビティは、状態とデータをワークフローに保存するチェックポイントを受け取ります。 ワークフローが中断または中断された場合は、再起動する必要なく、最新のチェックポイントから再開できます。

チェックポイント ワークフロー アクティビティは、ワークフローでのみ有効です。

SYNTAX

Workflow <Verb-Noun>
{
    Checkpoint-Workflow
}

チェックポイント ワークフロー アクティビティは、共通パラメーターやワークフロー共通パラメーターなど、パラメーターを受け取りません。

Checkpoint-Activity チェックpoint は、CmdletBinding ステートメントまたは Param ステートメントの後のワークフロー内の任意の場所に配置できます。 ただし、チェックポイントを配置する場合は、データを収集し、ワークフローを実行しているコンピューター上のディスクに書き込む場合のパフォーマンス コストを考慮してください。

中断されたワークフローのセクションを再実行する時間が、チェックポイントの状態とデータをディスクに書き込む時間を超えることを必ず確認します。

ワークフローを再開するのではなく再開できるように、重要な手順の後にチェックポイントを取ることを検討してください。 たとえば、べき等ではないコマンドの後にチェックポイントを取ります。

チェックポイントについて

"チェックポイント" とは、変数の現在の値などのワークフローの状態と、そのポイントまでに生成された出力のことで、ディスクに保存されます。

ワークフローが意図的または意図せずに中断された場合、Windows PowerShell ワークフローは最新のチェックポイントのデータを自動的に使用してワークフローを回復および再開します。

AsJob ワークフロー共通パラメーターを使用するなどしてジョブとしてワークフローを実行すると、Remove-Job コマンドレットを使用するなどして、ジョブを削除するまでワークフロー チェックポイントが保持されます。 それ以外の場合、ワークフローチェックポイントはワークフローの完了時に削除されます。

その他のチェックポイント処理手法

Windows PowerShell Workflow では、チェックポイント ワークフロー アクティビティに加えて、次のような他のチェックポイント手法もサポートされています。

  • PSPersist ワークフロー共通パラメーター
  • PSPersist アクティビティ共通パラメーター
  • PSPersistPreference 変数 (ワークフロー内)

ワークフローにチェックポイントを追加する方法の詳細については、「ワークフローにチェックポイントを追加する方法」を参照してください。

次のワークフローには、実行時間の長い関数を完了した後の Checkpoint-Workflow アクティビティの呼び出しと、データを共有するスクリプトが含まれています。

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

    Invoke-LongRunningFunction
    {
        ...
    }
}

参照