WSO2 Enterprise Integrator Sequence - 异步调用后的轮询结果

WSO2 Enterprise Integrator Sequence - Poll result after Asynchronous Call

运行 WSO2 EI 6.2.0

我有一个 WSO2 EI ESB 的简单用例(序列):

  1. 从原始请求中提取一些参数
  2. 调用异步 REST API
  3. 从异步调用负载中提取执行 ID
  4. 轮询循环另一个同步 API 以根据执行 ID 检查执行状态
  5. 当 Sync API 表示请求已完成时停止轮询
  6. 从上次同步调用中提取一些参数
  7. 回应

我的问题在于 轮询同步 API 直到 它 returns 一些参数表明先前的异步执行已完成。

这种轮询循环是否有任何 WSO2 EI 序列调解器?

ESB 中介(序列)并不是真的要保持状态并等待任何事情。我相信甚至没有任何 "do/while" 循环的意图。我们有一个项目需要很多轮询步骤,我们使用了一个流程服务器来做到这一点。所以 - 通过纯粹的调解,很难实现你的要求。即使你可以检查这个 http://bsenduran.blogspot.com/2017/08/while-loop-in-wso2-esb.html

我会提出一些你可以做的事情:

  • 写一个自定义轮询调解器(我真的不建议这样做)
  • 使用进程服务器(需要额外的不那么轻量级的服务器)
  • 通过消息处理器使用消息传递(将消息发送到队列,消息处理器将轮询、调用并将消息发送回队列或响应)

在所有情况下 - 如果客户端正在等待同步响应,您需要在客户端超时之前完成轮询。恕我直言,最好的选择 return 给客户的消息(我们正在努力)并尽可能避免轮询..