0

我非常想打电话

/sendAllUsersAnEmail

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

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

4

1 回答 1

1

如果我明白你需要什么,它是这样的:

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

所以我的想法是:

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

一个例子:

<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>

我希望这对你有帮助。

问候。

于 2014-09-21T20:05:36.893 回答