次の方法で共有


about_Checkpoint-Workflow

概要

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

詳細説明

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

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

SYNTAX

Workflow <Verb-Noun>
{
    Checkpoint-Workflow
}

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

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

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

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

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

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

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

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

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

チェックポイント ワークフロー アクティビティに加えて、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
    {
        ...
    }
}

参照