about_Suspend-Workflow
Descrizione breve
Descrive l'attività Suspend-Workflow
che sospende il flusso di lavoro in cui viene visualizzata l'attività.
Descrizione lunga
L'attività Suspend-Workflow
interrompe temporaneamente l'elaborazione del flusso di lavoro dall'interno del flusso di lavoro. Prima della sospensione, il flusso di lavoro di Windows PowerShell accetta un checkpoint in modo che lo stato e i dati del flusso di lavoro vengano mantenuti e che il flusso di lavoro possa riprendere dal punto di sospensione.
Per riprendere il flusso di lavoro, l'utente che esegue il flusso di lavoro usa il Resume-Job
cmdlet . Non è possibile riprendere un flusso di lavoro dall'interno del flusso di lavoro.
Sintassi
workflow <Verb-Noun>
{
Suspend-Workflow
}
Descrizione dettagliata
L'oggetto Suspend-Workflow
arresta temporaneamente il flusso di lavoro e restituisce un oggetto processo che rappresenta il processo del flusso di lavoro. Viene restituito un oggetto processo anche se non è stato eseguito il flusso di lavoro come processo. Ad esempio, usando il parametro comune del flusso di lavoro AsJob . Lo stato del processo è Suspended.
È possibile usare i cmdlet del processo per gestire il processo del flusso di lavoro sospeso. Per riprendere il processo del flusso di lavoro, usare il Resume-Job
cmdlet .
Quando si riprende il processo del flusso di lavoro, il flusso di lavoro riprende dal comando che segue l'attività Suspend-Workflow
.
Ad esempio, il flusso di lavoro seguente include l'attività Suspend-Workflow
.
Quando si esegue il flusso di lavoro, l'attività Get-Date
viene eseguita, ne salva l'output nella $a
variabile e quindi sospende il flusso di lavoro e restituisce un oggetto processo che rappresenta il flusso di lavoro sospeso. Il tipo di processo è PSWorkflowJob.
È possibile usare i cmdlet del processo, ad esempio Get-Job
, per gestire il processo del flusso di lavoro.
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
Ripresa di un processo del flusso di lavoro
Per riprendere il processo del flusso di lavoro, usare il Resume-Job
cmdlet . Il Resume-Job
cmdlet restituisce immediatamente l'oggetto processo del flusso di lavoro, anche se potrebbe non essere ancora ripreso. Per attendere la ripresa del processo, usare il parametro Wait oppure usare il Get-Job
cmdlet per ottenere l'oggetto processo corrente.
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
Recupero dell'output di un processo del flusso di lavoro
Per ottenere l'output di un processo del flusso di lavoro, usare il Receive-Job
cmdlet . L'output mostra che il flusso di lavoro è stato ripreso nel comando che ha seguito il Suspend-Workflow
cmdlet . Il valore della variabile, popolata prima della $a
sospensione, è disponibile per il flusso di lavoro quando riprende.
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