WSO2 Enterprise Integrator Sequence - результат опроса после асинхронного вызова - PullRequest
0 голосов
/ 07 декабря 2018

Запуск WSO2 EI 6.2.0

У меня есть простой вариант использования (последовательность) для WSO2 EI ESB:

  1. Извлечение некоторых параметров из исходного запроса
  2. Вызовите Async REST API
  3. Извлечение идентификатора выполнения из полезной нагрузки асинхронного вызова
  4. Опрос Цикл другого API синхронизации для проверки статуса выполнения на основе идентификатора выполнения
  5. Остановить опрос, когдаAPI синхронизации говорит, что запрос завершен
  6. Извлечение некоторых параметров из последнего вызова синхронизации
  7. Ответ

Моя проблема заключается в Опрос API синхронизациидо он не возвращает некоторый параметр, говорящий о том, что предыдущее асинхронное выполнение завершено.

Существует ли какой-либо посредник последовательности EI WSO2 для такого рода цикла опроса?

1 Ответ

0 голосов
/ 07 декабря 2018

Посредники ESB (последовательности) на самом деле не предназначены для сохранения состояния и ожидания чего-либо.Я полагаю, что это даже намерение не иметь какой-либо цикл "делать / пока".У нас был проект, требующий много шагов опроса, и мы использовали для этого сервер процессов.Итак, с чистым посредничеством очень трудно выполнить то, что вы просите.Даже вы можете проверить это http://bsenduran.blogspot.com/2017/08/while-loop-in-wso2-esb.html

Я предложу несколько вещей, которые вы могли бы сделать:

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

Во всех случаях - если клиент ожидает синхронного ответа, необходимо завершить опрос до истечения времени ожидания клиента.ИМХО лучший вариант вернуть сообщение клиенту (мы над ним работаем) и по возможности избегать опроса.

...