Как получить результат рабочего процесса каденции через интерфейс командной строки или Java-клиент

Как запросить конечный результат рабочего процесса через интерфейс командной строки или Java-клиент с заданным идентификатором рабочего процесса


person Krishna Chaithanya Ganta    schedule 24.06.2020    source источник
comment
Какой вариант использования? Обычно запрашивать результат рабочего процесса у внешнего клиента - плохая идея.   -  person Maxim Fateev    schedule 24.06.2020
comment
В настоящее время внешний клиент (заказчик) запускает асинхронный HTTP-запрос, а затем опрашивает результат через URL-адрес монитора. Мы планируем заменить асинхронную операцию (которая в основном перемещает клиентский контент по облачным регионам) на рабочий процесс Cadence. Итак, у нас может быть тонкая служба-оболочка для каденции, и когда клиент запускает асинхронный HTTP-запрос, мы будем выполнять рабочий процесс, и когда клиент опрашивает результат, нам нужно проверить ход рабочего процесса, а затем вернуть результат, если рабочий процесс выполняется. Это плохая идея?   -  person Krishna Chaithanya Ganta    schedule 25.06.2020


Ответы (1)


Чтобы дождаться результата рабочего процесса, синхронно заданного WorkflowID с помощью Java Client:

WorkflowStub client = workflowClient.newWorkflowStub(
       workflowId, Optional.empty(), Optoinal.of("workflowType"));

ResultClass result = client.getResult(<ResultClass>.class);
person Maxim Fateev    schedule 25.06.2020
comment
Спасибо, можно ли проверить, выполняется ли рабочий процесс, а затем попытаться получить результат. - person Krishna Chaithanya Ganta; 25.06.2020
comment
Я не уверен, что понимаю. Если он все еще выполняется, этот вызов будет заблокирован. Ты хочешь чего-нибудь еще? - person Maxim Fateev; 25.06.2020
comment
Я ищу что-то вроде client.isWorkflowRunning (), которое возвращает true, если рабочий процесс выполняется. - person Krishna Chaithanya Ganta; 25.06.2020
comment
Попробуйте метод getResult (timeout, ....) с 0 таймаутом. - person Maxim Fateev; 25.06.2020