9

Reactor 2xを既存のアプリケーションに統合して、互いに独立してフェッチできるリクエストSpring 4の実行中のパフォーマンスを向上させようとしています。ジョブを複数のスレッドに並列化し、それらをバッファに結合するマップリデュースのようなものです。 .RESTresources

これまでのところ、このサンプルは非Spring環境で動作しています:

    //Ordered resources to apply transformations.
    List<Map<String, Object>> result;

    result = Streams.from(resources)
                    .flatMap(m -> Streams.just(m) .dispatchOn(Environment.cachedDispatcher())
                    .map(resourceToMapFunction::apply))
                    .buffer().next().await(5, TimeUnit.SECONDS);

上記のサンプルでは、​​ を使用して変換を適用してから、 を メソッドresourceToMapFunctionと結合し、 をbuffer()作成しPromiseて結果を待ち、 を返しますresult

私の最初の質問は、これが Reactor の想定される使用方法ですか? 変換が正しく適用されていることは知っていますが、おそらく、私はReactor何かを正しい方法で使用していない初心者です。

私の2番目の質問は大したことではありませんが、入力Reactorで提供されたのと同じ順序でプロジェクトに返すものはありますか? resourcesこれは複数のスレッドで実行されているので、答えはそうではないと確信しています.

最後の質問です。このコードをプロジェクトに導入すると、下層の変換を適用するSpringための依存関係が実行スレッドにないため、変換が失敗します。これは、Spring Reactor バージョンで簡単に実行できますか? Beanもしそうなら、それを行う方法を示すリンクまたはドキュメントはありますか?

どうもありがとう!

ホセ・ルイス

4

2 に答える 2