#camunda
#camunda
Вопрос:
Внешняя служба может получить сообщение от обработчика процесса Camunda, используя приведенный ниже фрагмент кода. Клиент периодически опрашивает обработчик процесса Camunda для получения сообщений?
ExternalTaskClient client = ExternalTaskClient.create().baseUrl(“http://localhost:8080/engine-rest”)
.asyncResponseTimeout(10000)
.build();
client.subscribe(“AdlDMNOtherClient”).lockDuration(1000)…
Ответ №1:
Он использует «длительный опрос», поэтому он не открывает новые запросы, но пытается поддерживать одно соединение как можно дольше, см. https://github.com/camunda/camunda-external-task-client-java/blob/master/examples/order-handling/src/main/java/org/camunda/bpm/App.java
Итак, если ваш вопрос: «Будет ли мой код автоматически получать уведомления при создании новой задачи», ответ — ДА.
Если ваш вопрос: будет ли у меня много HTTP-запросов, ответ — НЕТ, обычно нет.
Комментарии:
1. Спасибо, Ян. Я предполагаю, что в случае, если asyncResponseTimeout достигнет соединения, тогда оно создаст новое HTTP-соединение. В этой модели, как внешняя задача использует переменную для механизма обработки?
Ответ №2:
ДА. Архитектура, шаблон взаимодействия (вкл. длительный опрос) и способы передачи ошибок или результатов обратно в обработчик процессов описаны здесь с помощью нескольких диаграмм:
https://docs.camunda.org/manual/latest/user-guide/process-engine/external-tasks/
и здесь:
https://docs.camunda.org/manual/latest/user-guide/ext-client/