WSO2企业集成商序列-异步调用后的轮询结果

时间:2018-12-07 15:19:06

标签: wso2 wso2esb wso2-am wso2ei

运行WSO2 EI 6.2.0

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

  1. 从原始请求中提取一些参数
  2. 调用异步REST API
  3. 从异步呼叫有效载荷中提取执行ID
  4. 轮询另一个同步API,以根据执行ID检查执行状态
  5. 当Sync API说请求已完成时,暂停轮询
  6. 从上次同步调用中提取一些参数
  7. 响应

我的问题出在轮询Sync API,直到,它返回一些参数,表明先前的异步执行已完成。

这种轮询循环是否有WSO2 EI序列介体?

1 个答案:

答案 0 :(得分:1)

ESB调解(序列)并非真正旨在保留状态并等待任何事情。我相信甚至没有任何“ do / while”循环的意图。我们有一个需要很多轮询步骤的项目,并且我们使用了流程服务器来完成。因此,通过纯粹的调解很难实现您的要求。甚至您也可以选中此http://bsenduran.blogspot.com/2017/08/while-loop-in-wso2-esb.html

我将建议您可以做的几件事:

  • 写一个自定义的轮询介体(我真的不建议这样做)
  • 使用流程服务器(需要其他轻量级服务器)
  • 与消息处理器一起使用消息传递(将消息发送到队列,消息处理器将轮询,调用并将其发送回队列或进行响应)

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