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