Sdílet prostřednictvím


about_Suspend-Workflow

Krátký popis

Popisuje Suspend-Workflow aktivitu, která pozastaví pracovní postup, ve kterém se aktivita zobrazuje.

Dlouhý popis

Aktivita Suspend-Workflow dočasně zastaví zpracování pracovního postupu v rámci pracovního postupu. Před pozastavením pracovní postup Windows PowerShellu převezme kontrolní bod, aby se zachoval stav pracovního postupu a data a pracovní postup může pokračovat z bodu pozastavení.

Pokud chcete pracovní postup obnovit, uživatel, který pracovní postup spouští, použije rutinu Resume-Job . Pracovní postup nelze obnovit z pracovního postupu.

Syntaxe

workflow <Verb-Noun>
{
    Suspend-Workflow
}

Podrobný popis

Dočasně Suspend-Workflow zastaví pracovní postup a vrátí objekt úlohy, který představuje úlohu pracovního postupu. Objekt úlohy se vrátí, i když jste pracovní postup nespusili jako úlohu. Například pomocí společného parametru pracovního postupu AsJob . Stav úlohy je pozastavený.

Pomocí rutin úloh můžete spravovat pozastavenou úlohu pracovního postupu. Pokud chcete obnovit úlohu pracovního postupu, použijte rutinu Resume-Job .

Když obnovíte úlohu pracovního postupu, pracovní postup se obnoví v příkazu, který následuje za aktivitou Suspend-Workflow .

Například následující pracovní postup obsahuje Suspend-Workflow aktivitu. Když pracovní postup spustíte, spustí Get-Date aktivitu, uloží její výstup do $a proměnné a pak pracovní postup pozastaví a vrátí objekt úlohy, který představuje pozastavený pracovní postup. Typ úlohy je PSWorkflowJob.

Ke správě úlohy můžete použít rutiny úlohy, například 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

Obnovení úlohy pracovního postupu

Pokud chcete obnovit úlohu pracovního postupu, použijte rutinu Resume-Job . Rutina Resume-Job vrátí objekt úlohy pracovního postupu okamžitě, i když ještě nemusí být obnoven. Pokud chcete počkat na obnovení úlohy, použijte parametr Wait nebo použijte rutinu Get-Job k získání aktuálního objektu úlohy.

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

Získání výstupu úlohy pracovního postupu

Pokud chcete získat výstup úlohy pracovního postupu, použijte rutinu Receive-Job . Výstup ukazuje, že pracovní postup pokračoval v příkazu, který postupoval za rutinou Suspend-Workflow . Hodnota $a proměnné, která byla vyplněna před pozastavením, je k dispozici pracovnímu postupu při jeho obnovení.

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

Viz také