Долгосрочная задача обслуживания activiti - PullRequest
0 голосов
/ 03 октября 2019

У нас много автоматизированных задач в процессе активации, выполнение которых занимает много времени. Как и вызовы REST на внешнюю систему ИЛИ отправка и получение сообщения JMS.

Я могу сделать это, используя две опции:

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

Может ли кто-нибудь проверить, какой будет правильный подход или какой-либо лучший способ справиться с этим в activiti.

1 Ответ

2 голосов
/ 03 октября 2019

Если у вас есть контроль над службами получателя, вы также можете использовать событие промежуточного сообщения, чтобы приостановить выполнение и заставить внешнюю (длительную) службу завершить процесс, введя сообщение.

Каждый из двух подходов к каждомуесть преимущества / недостатки

Задача асинхронизации службы - я предполагаю, что вы предлагаете сохранить логику «паузы» внутри задачи службы и просто блокировать задачу до тех пор, пока не вернется внешняя служба. Хотя это более точно и сохраняет логику в реализации задачи службы, она не позволяет событиям граничного таймера или другой обработке ошибок / тайм-аутов BPMN переместить процесс, если время ожидания службы истекло. Конечно, вы можете выдать BPMNError, которая будет пузыриться, но это усложнит фактическую логику.

Задачи отправки-получения - это предполагает, что вы имеете контроль над внешними службами, так как это очень похоже на третий вариант Iупомянутое использование промежуточных событий сообщения. Я предпочитаю такой подход, так как логика ясна и очевидна. Тем не менее, это означает, что вы должны иметь возможность для внешней службы «отправлять» что-то обратно в задачу приема для продвижения потока.

В любом случае, оба варианта имеют свое место, и многое зависит от характераВаш внешний сервис.

Надеюсь, это поможет.

...