0

かなり私は電話したいです

/sendAllUsersAnEmail

これはDSSを呼び出し、次の行に沿って何かを行いますSELECT user_id FROM users WHERE status = 'PENDING'

これが問題です。ESB に結果をループさせて (または、DSS に直接 API を呼び出させることはできますか?)、各ユーザーに対して /sendEmail/{user_id} を呼び出すにはどうすればよいですか? または、これは不可能であり、結果を外部言語に返し、結果ごとに esb を再度呼び出す必要がありますか。

4

1 に答える 1

1

あなたが何を必要としているのかを私が理解していれば、それは次のようなものです:

システムDB内にテーブルがあり、システムで何かをするために保留中のユーザーからのuser_idがあり、このテーブルを調べてuser_idのリストを取得し、このリストのすべてのエントリに対して、安らかなサービスを呼び出してユーザーID

だから私の考えは:

  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 に答える