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


Конечная точка элемента управления рабочего процесса

Конечная точка управления рабочим процессом позволяет разработчику вызывать операции удаленного управления экземплярами рабочего процесса, размещенные с помощью WorkflowServiceHost. Эта функция может быть использована для программного выполнения таких операций управления, как приостановка, возобновление и завершение.

Предупреждение

Если в транзакции используется конечная точка управления рабочим процессом, а контролируемый рабочий процесс содержит Persist действие, экземпляр рабочего процесса будет блокироваться до истечения времени ожидания транзакции.

Управление экземплярами рабочего процесса

платформа .NET Framework 4.6.1 определяет новый контрактIWorkflowInstanceManagement. Этот контракт определяет последовательность операций управления, которые дают возможность удаленно управлять экземплярами рабочего процесса, размещенными в WorkflowServiceHost. WorkflowControlEndpoint - это стандартная конечная точка, которая обеспечивает реализацию контракта IWorkflowInstanceManagement. WorkflowControlClient - класс, который используется для отправки управляющих операций конечной точке WorkflowControlEndpoint.

Экземпляры рабочих процессов могут иметь следующие состояния.

Активно
Состояния экземпляра рабочего процесса до достижения завершенного состояния при условии, что экземпляр не находится в приостановленном состоянии. В этом состоянии экземпляр рабочего процесса запускается и обрабатывает сообщения приложения.

Приостановлено
В этом состоянии экземпляр рабочего процесса не запускается даже при наличии действий, которые не выполнялись или были выполнены частично.

Завершено
Завершающее состояние экземпляра рабочего процесса. Экземпляр рабочего процесса не может выполняться после достижения завершенного состояния.

IWorkflowInstanceManagement

Интерфейс IWorkflowInstanceManagement определяет набор операций управления с синхронными и асинхронными версиями. Для версий с транзакциями необходимо использовать привязку с поддержкой транзакций. В следующей таблице перечислены поддерживаемые операции управления.

Операции управления Description
Abort Принудительно останавливает выполнение экземпляра рабочего процесса.
Отменить Переводит экземпляр рабочего процесса из активного или ожидающего состояния в завершенное состояние.
Выполнить Обеспечивает возможность запуска экземпляра рабочего процесса.
Приостановить Переводит экземпляр рабочего процесса из активного состояния в состояние ожидания.
Увольнение Переводит экземпляр рабочего процесса из активного или ожидающего состояния в завершенное состояние.
Unsuspend Переводит экземпляр рабочего процесса из состояния ожидания в активное состояние.
TransactedCancel Выполняет операцию отмены для транзакции (передается от клиента или создается локально). Если система сохраняет устойчивое состояние экземпляра рабочего процесса, экземпляр рабочего процесса должен быть сохранен во время выполнения этой операции.
TransactedRun Выполняет операцию выполнения для транзакции (передается от клиента или создается локально). Если система сохраняет устойчивое состояние экземпляра рабочего процесса, экземпляр рабочего процесса должен быть сохранен во время выполнения этой операции.
TransactedSuspend Выполняет операцию приостановки для транзакции (передается от клиента или создается локально). Если система сохраняет устойчивое состояние экземпляра рабочего процесса, экземпляр рабочего процесса должен быть сохранен во время выполнения этой операции.
TransactedTerminate Выполняет операцию прекращения для транзакции (передается от клиента или создается локально). Если система сохраняет устойчивое состояние экземпляра рабочего процесса, экземпляр рабочего процесса должен быть сохранен во время выполнения этой операции.
TransactedUnsuspend Выполняет операцию возобновления для транзакции (передается от клиента или создается локально). Если система сохраняет устойчивое состояние экземпляра рабочего процесса, экземпляр рабочего процесса должен быть сохранен во время выполнения этой операции.

Контракт IWorkflowInstanceManagement не предусматривает возможности создания нового экземпляра рабочего процесса, а лишь обеспечивает управление существующими экземплярами рабочих процессов. Дополнительные сведения о удаленном создании экземпляра рабочего процесса см. в разделе "Расширяемость узла службы рабочих процессов".

WorkflowControlEndpoint

WorkflowControlEndpoint является стандартной конечной точкой с фиксированным контрактом IWorkflowInstanceManagement. После добавления к экземпляру WorkflowServiceHost эта конечная точка затем может быть использована для отправки командных операций в любой экземпляр рабочего процесса, размещенного в ведущем экземпляре. Дополнительные сведения о стандартных конечных точках см. в разделе "Стандартные конечные точки".

WorkflowControlClient

WorkflowControlClient является классом, позволяющим отправлять сообщения управления WorkflowControlEndpoint в WorkflowServiceHost. Содержит метод для каждой из операций, поддерживаемых контрактом IWorkflowInstanceManagement, кроме транзакционных операций. WorkflowControlClient определяет необходимость использования транзакционных операций с помощью внешних транзакций.