Поделиться через


about_Suspend-Workflow

РАЗДЕЛ

about_Suspend-Workflow

КРАТКОЕ ОПИСАНИЕ

Описание действия Suspend-Workflow, приостанавливающее выполнение рабочего процесса, в котором отображается действие.

ПОДРОБНОЕ ОПИСАНИЕ

Действие Suspend-Workflow временно останавливает обработку рабочего процесса из самого рабочего процесса. Перед приостановкой Windows PowerShell® Workflow устанавливает контрольную точку, поэтому состояние и данные рабочего процесса сохраняются, и рабочий процесс можно возобновить с данного момента приостановки.

Чтобы возобновить рабочий процесс, пользователь, запускающий рабочий процесс, использует командлет Resume-Job. Нельзя возобновить рабочий процесс из самого этого рабочего процесса.

СИНТАКСИС

    workflow <Verb-Noun>
    {
        Suspend-Workflow
    }
    

ПОДРОБНОЕ ОПИСАНИЕ

Действие Suspend-Workflow временно останавливает рабочий процесс и возвращает объект задания, представляющий задание рабочего процесса. Объект задания возвращается, даже если рабочий процесс не запускался в качестве задания, например с помощью общего параметра рабочего процесса AsJob. Задание находится в приостановленном состоянии.

Для управления приостановленным заданием рабочего процесса можно использовать командлеты заданий. Для возобновления задания рабочего процесса используется командлет Resume-Job.

При возобновлении задания рабочего процесса рабочий процесс возобновляется с выполнения команды, которая следует за действием Suspend-Workflow.

Например, следующий рабочий процесс содержит действие Suspend-Workflow. Запущенный рабочий процесс выполняет действие Get-Date, сохраняет выходные данные в переменную $a, а затем приостанавливает рабочий процесс и возвращает объект задания, представляющий приостановленный рабочий процесс. Задание имеет тип PSWorkflowJob.

        Workflow Test-Suspend
        {
            $a = Get-Date
            Suspend-Workflow
            (Get-Date)- $a
        }

        PS C:\>Test-Suspend

        Id     Name            PSJobTypeName   State         HasMoreData     Location             Command                  
        --     ----            -------------   -----         -----------     --------             -------                  
        8      Job8            PSWorkflowJob   Suspended     True            localhost            Test-Suspend      

Для управления заданием рабочего процесса можно использовать командлеты заданий, например Get-Job.

ВОЗОБНОВЛЕНИЕ ЗАДАНИЯ РАБОЧЕГО ПРОЦЕССА

Для возобновления задания рабочего процесса используется командлет Resume-Job. Командлет Resume-Job возвращает объект задания рабочего процесса немедленно и даже несмотря на то, что задание еще может быть не возобновлено. Чтобы дождаться возобновления задания, используйте параметр Wait, или воспользуйтесь командлетом Get-Job для получения объекта текущего задания.

        PS C:\>Resume-Job -Name Job8

        Id     Name            PSJobTypeName   State         HasMoreData     Location             Command                  
        --     ----            -------------   -----         -----------     --------             -------                  
        8      Job8            PSWorkflowJob   Suspended     True            localhost            Test-Suspend      


        PS C:\>Get-Job -Name Job8

        Id     Name            PSJobTypeName   State         HasMoreData     Location             Command                  
        --     ----            -------------   -----         -----------     --------             -------                  
        8      Job8            PSWorkflowJob   Completed     True            localhost            Test-Suspend      

ПОЛУЧЕНИЕ ВЫХОДНЫХ ДАННЫХ ЗАДАНИЯ РАБОЧЕГО ПРОЦЕССА

Для получения выходных данных задания рабочего процесса используйте командлет Receive-Job. Выходные данные показывают, что рабочий процесс возобновлен с команды, которая следовала за командлетом Suspend-Workflow. Значение переменной $a, которая была заполнена до приостановки, становится доступным для рабочего процесса после его возобновления.

        PS C:\>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 

СМ. ТАКЖЕ

about_Workflows

Приступая к работе с Windows PowerShell Workflow (https://go.microsoft.com/fwlink/?LinkID=252592)