Возможности в Camunda Cloud для оптимизации рабочего процесса и выполнения конкретных задач

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

В Camunda Cloud есть возможность использовать программу Zeebe. Она работает с рабочей системой PubSub. С ее помощью вы можете выполнять конкретные задания. Для этого нужно зарегистрироваться в программе Zeebe. Работать в среде можно на любом языке программирования — для некоторых из них есть библиотеки, упрощающие интеграцию.

В статье рассмотрено три способа оптимизации рабочего процесса для выполнения конкретных задач с помощью использования Random Number, Increase Number и Webhook.site. 

1. Random Number

В первом примере Worker определяет случайное число и возвращает это число в запущенный экземпляр. Оно записывается в контекст процесса, и в следующем шлюзе будет проверяться. Оно не должно быть больше ли оно пятерки. Могут быть запущены три действия:

  1. deploy: развертывание диаграммы BPMN в своем кластере.
  2. start: запуск нового экземпляра диаграммы BPMN.
  3. worker: рабочий регистрируется в вашем кластере на несколько секунд и выполняет код.

Выполните первые два шага и перейдите в режим «Operate». С помощью Operate вы можете увидеть все развернутые диаграммы BPMN и как завершенные, так и запущенные экземпляры. 

Итак, после второго шага новый экземпляр запущен и ожидает в узле Random Number. Процесс не продолжается, потому что сначала нужно выполнить соответствующую задачу. Если вы теперь позволите рабочему элементу работать, вы заметите, что он проработает еще некоторое время и завершит работу самостоятельно. Тип задачи настраивается в атрибутах служебной задачи на диаграмме BPMN. 

То же самое и со шлюзом. В этом случае мы хотим привязать условие к переменной в контексте процесса, которая была установлена. 

Пример визуализации настройки задачи в BPMN и двух исходящих путей шлюза можно посмотреть на сайте Camunda.

2. Increase Number

Второй пример представляет собой простой цикл. Worker устроен так же, как и в первом примере. Основное отличие состоит в том, что в качестве входных данных используется значение из контекста процесса. Это значение увеличивается при каждом выполнении. Также можно увидеть, что критерий прерывания не является частью реализации воркера. Рабочий должен полностью сосредоточиться на своей сложной задаче.

3. Webhook.site

Этот пример показывает реальный вариант использования с помощью выполнения HTTP-запроса. Чтобы увидеть это используйте Webhook.site. Так, вы получаете отдельную конечную точку HTTP, которую можете использовать в примере. Если запрос отправлен в службу, вы увидите новую запись на панели инструментов.
Чтобы этот пример работал с вашим индивидуальным Webhook.site, необходимо установить соответствующий идентификатор Webhook. Под действием запуска вы найдете поле ввода, в котором вы можете ввести свой идентификатор или индивидуальный URL-адрес веб-перехватчика. А Restzeebe как раз извлекает идентификатор из URL-адреса.

Axios используется для выполнения HTTP-запроса. Worker разработан таким образом, что вы можете самостоятельно настроить метод HTTP. Для этого необходимо загрузить диаграмму BPMN, перейти к параметрам заголовка служебных задач и установить другой метод. Если у вас уже есть экосистема микросервисов и службы взаимодействуют через REST, то это уже небольшой шаг для оркестровки микросервисов с помощью механизма рабочего процесса.

 

С полной версией статьи вы можете ознакомиться по ссылке.

Вам может понравится
Рубрика: мир IT
Популярные
×
Оставьте свой номер и мы вам перезвоним