about_Suspend-Workflow
Descripción breve
Describe la Suspend-Workflow
actividad, que suspende el flujo de trabajo en el que aparece la actividad.
Descripción larga
La actividad detiene temporalmente el Suspend-Workflow
procesamiento del flujo de trabajo desde dentro del flujo de trabajo. Antes de suspender, el flujo de trabajo de Windows PowerShell toma un punto de control para que el estado y los datos del flujo de trabajo se conserven y el flujo de trabajo pueda reanudarse desde el punto de suspensión.
Para reanudar el flujo de trabajo, el usuario que ejecuta el flujo de trabajo usa el Resume-Job
cmdlet . No se puede reanudar un flujo de trabajo desde el flujo de trabajo.
Sintaxis
workflow <Verb-Noun>
{
Suspend-Workflow
}
Descripción detallada
Detiene Suspend-Workflow
temporalmente el flujo de trabajo y devuelve un objeto de trabajo que representa el trabajo de flujo de trabajo. Se devuelve un objeto de trabajo incluso si no ejecutó el flujo de trabajo como trabajo. Por ejemplo, por ejemplo, mediante el parámetro común del flujo de trabajo de AsJob . El estado del trabajo es Suspendido.
Puede usar los cmdlets de trabajo para administrar el trabajo de flujo de trabajo suspendido. Para reanudar el trabajo de flujo de trabajo, use el Resume-Job
cmdlet .
Al reanudar el trabajo de flujo de trabajo, el flujo de trabajo se reanuda en el comando que sigue a la Suspend-Workflow
actividad.
Por ejemplo, el siguiente flujo de trabajo incluye la Suspend-Workflow
actividad .
Al ejecutar el flujo de trabajo, ejecuta la Get-Date
actividad, guarda su salida en la $a
variable y, a continuación, suspende el flujo de trabajo y devuelve un objeto de trabajo que representa el flujo de trabajo suspendido. El tipo de trabajo es PSWorkflowJob.
Puede usar los cmdlets de trabajo, como Get-Job
, para administrar el trabajo de flujo de trabajo.
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
Reanudación de un trabajo de flujo de trabajo
Para reanudar el trabajo de flujo de trabajo, use el Resume-Job
cmdlet . El Resume-Job
cmdlet devuelve inmediatamente el objeto de trabajo de flujo de trabajo, aunque es posible que aún no se reanude. Para esperar a que se reanude el trabajo, use el parámetro Wait o use el Get-Job
cmdlet para obtener el objeto de trabajo actual.
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
Obtención de la salida de un trabajo de flujo de trabajo
Para obtener la salida de un trabajo de flujo de trabajo, use el Receive-Job
cmdlet . La salida muestra que el flujo de trabajo se reanudó en el comando que siguió al Suspend-Workflow
cmdlet . El valor de la $a
variable, que se ha rellenado antes de la suspensión, está disponible para el flujo de trabajo cuando se reanuda.
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