about_Suspend-Workflow
Breve descrição
Descreve a Suspend-Workflow
atividade, que suspende o fluxo de trabalho no qual a atividade aparece.
Descrição longa
A Suspend-Workflow
atividade interrompe temporariamente o processamento do fluxo de trabalho de dentro do fluxo de trabalho. Antes de suspender, o Fluxo de Trabalho do Windows PowerShell usa um ponto de verificação para que o estado e os dados do fluxo de trabalho sejam preservados e o fluxo de trabalho possa ser retomado a partir do ponto de suspensão.
Para retomar o fluxo de trabalho, o usuário que executa o fluxo de trabalho usa o Resume-Job
cmdlet. Não é possível retomar um fluxo de trabalho a partir do fluxo de trabalho.
Sintaxe
workflow <Verb-Noun>
{
Suspend-Workflow
}
Descrição detalhada
O Suspend-Workflow
interrompe temporariamente o fluxo de trabalho e retorna um objeto de trabalho que representa o trabalho de fluxo de trabalho. Um objeto de trabalho é retornado mesmo que você não tenha executado o fluxo de trabalho como um trabalho. Por exemplo, por exemplo, usando o parâmetro comum do fluxo de trabalho AsJob . O estado do trabalho é Suspenso.
Você pode usar os cmdlets de trabalho para gerenciar o trabalho de fluxo de trabalho suspenso. Para retomar o trabalho de fluxo de trabalho, use o Resume-Job
cmdlet.
Quando você retoma o trabalho de fluxo de trabalho, o fluxo de trabalho é retomado no comando que segue a Suspend-Workflow
atividade.
Por exemplo, o fluxo de trabalho a seguir inclui a Suspend-Workflow
atividade.
Quando você executa o fluxo de trabalho, ele executa a Get-Date
atividade, salva sua saída na variável e, em $a
seguida, suspende o fluxo de trabalho e retorna um objeto de trabalho que representa o fluxo de trabalho suspenso. O tipo de trabalho é PSWorkflowJob.
Você pode usar os cmdlets de trabalho, como Get-Job
, para gerenciar o trabalho de fluxo de trabalho.
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
Retomar um trabalho de fluxo de trabalho
Para retomar o trabalho de fluxo de trabalho, use o Resume-Job
cmdlet. O Resume-Job
cmdlet retorna o objeto de trabalho de fluxo de trabalho imediatamente, mesmo que ele ainda não tenha sido retomado. Para aguardar que o trabalho seja retomado, use o parâmetro Wait ou use o Get-Job
cmdlet para obter o objeto de trabalho atual.
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
Obtendo a saída de um trabalho de fluxo de trabalho
Para obter a saída de um trabalho de fluxo de trabalho, use o Receive-Job
cmdlet. A saída mostra que o fluxo de trabalho foi retomado no comando que seguiu o Suspend-Workflow
cmdlet. O valor da variável, que foi preenchida antes da suspensão, estará disponível para o fluxo de $a
trabalho quando ele for retomado.
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