about_Suspend-Workflow

简短说明

介绍了 Suspend-Workflow 活动,该活动挂起活动所在的工作流。

长说明

Suspend-Workflow 活动暂时从工作流中停止工作流处理。 在暂停之前,Windows PowerShell 工作流会获取一个检查点,以便保留工作流的状态和数据,并且工作流可以从挂起点恢复。

若要恢复工作流,运行工作流的用户需使用 Resume-Job cmdlet。 无法从工作流中恢复工作流。

语法

workflow <Verb-Noun>
{
    Suspend-Workflow
}

详细说明

Suspend-Workflow 暂时停止工作流,并返回一个表示工作流作业的作业对象。 即使你未将工作流作为作业运行,也会返回作业对象。 例如,通过使用 AsJob 工作流通用参数。 作业状态为 Suspended。

你可以使用作业 cmdlet 来管理挂起的工作流作业。 若要恢复工作流作业,请使用 Resume-Job cmdlet。

恢复工作流作业时,工作流将从 Suspend-Workflow 活动后面的命令开始恢复。

例如,以下工作流包括 Suspend-Workflow 活动。 运行该工作流时,它会运行 Get-Date 活动,将其输出保存在 $a 变量中,然后挂起工作流,并返回表示挂起的工作流的作业对象。 作业类型为 PSWorkflowJob。

可以使用作业 cmdlet(例如 Get-Job)来管理工作流作业。

Workflow Test-Suspend
{
    $a = Get-Date
    Suspend-Workflow
    (Get-Date)- $a
}

Test-Suspend
Id  Name  PSJobTypeName  State      HasMoreData  Location  Command
--  ----  -------------  -----      -----------  --------  -------
8   Job8  PSWorkflowJob  Suspended  True         localhost Test-Suspend

恢复工作流作业

若要恢复工作流作业,请使用 Resume-Job cmdlet。 Resume-Job cmdlet 会立即返回工作流作业对象(即使它可能尚未恢复)。 若要等待作业恢复,请使用 Wait 参数,或使用 Get-Job cmdlet 获取当前作业对象。

Resume-Job -Name Job8
Id  Name  PSJobTypeName  State    HasMoreData  Location  Command
--  ----  -------------  -----    -----------  --------  -------
8   Job8  PSWorkflowJob  Running  True         localhost Test-Suspend
Get-Job -Name Job8
Id  Name  PSJobTypeName  State      HasMoreData  Location  Command
--  ----  -------------  -----      -----------  --------  -------
8   Job8  PSWorkflowJob  Completed  True         localhost Test-Suspend

获取工作流作业的输出

若要获取工作流作业的输出,请使用 Receive-Job cmdlet。 输出表明,工作流已从 Suspend-Workflow cmdlet 后面的命令恢复。 挂起前填充的 $a 变量值在恢复时可供工作流使用。

Get-Job -Name Job8 | Receive-Job
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 19
Milliseconds      : 823
Ticks             : 198230041
TotalDays         : 0.000229432917824074
TotalHours        : 0.00550639002777778
TotalMinutes      : 0.330383401666667
TotalSeconds      : 19.8230041
TotalMilliseconds : 19823.0041
PSComputerName    : localhost

另请参阅