【问题标题】:WSO2 ESB route endpoints based on results from DSSWSO2 ESB 基于 DSS 的结果路由端点
【发布时间】:2014-09-22 04:05:36
【问题描述】:

我很想打电话

/sendAllUsersAnEmail

它将调用 DSS 并按照SELECT user_id FROM users WHERE status = 'PENDING' 的方式执行某些操作

这就是问题所在。如何让 ESB 循环遍历结果(或者我可以让 DSS 直接调用 API?)并为每个用户调用 /sendEmail/{user_id}?或者这不可能吗?我是否需要将结果返回到外部语言并为每个结果再次调用 esb。

【问题讨论】:

  • 也许你可以添加一些 DS 和代理服务配置来了解你真正想要做什么。

标签: dynamic routing wso2 esb dss


【解决方案1】:

如果我了解您的需求,那就是这样的:

您的系统数据库中有一个表,其中用户的 user_id 等待在您的系统中执行某些操作,您需要查阅此表,获取 user_id 列表,并且此列表中的每个条目都调用了一个 restful传递 user_id 的服务

所以我的想法是:

  1. 使用数据服务获取 user_id 列表。
  2. 创建一个代理服务,在 seq1 中调用此数据服务,并在 seq2 中获取结果。
  3. 在 seq2 中使用迭代器调解器并将消息拆分为多个部分并像此示例中那样异步处理它们:https://docs.wso2.com/display/ESB481/Sample+400%3A+Message+Splitting+and+Aggregating+the+Responses

一个例子:

<iterate expression="//m0:getQuote/m0:request" preservePayload="true"
         attachPath="//m0:getQuote"
         xmlns:m0="http://services.samples">
    <target>
        <sequence>
            <send>
                <endpoint>
                    <address
                        uri="http://localhost:9000/services/SimpleStockQuoteService"/>
                </endpoint>
            </send>
        </sequence>
    </target>
</iterate>

希望对你有所帮助。

问候。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-19
    相关资源
    最近更新 更多