「背圧システム」を作成する際に問題があります。私はVertx HttpClientとRxJavaを使っています。 私は外部サービスに対して6000リクエストを行う必要があり、waitingForQueueでいっぱいになるのを避けるために、この外部サービスは送信するほど速く処理できないため、リクエスト/レスポンスの間に遅延があります。Vertex HttpClientとRxJavaでの背圧
この旅行はバッチ処理として機能しているので、1分かかっても心配はありません。
ここに私のコード
return from(subGroups)
.flatMap(subGroup -> getProductIdsForSubGroup(subGroup))
.delay(50, TimeUnit.MILLISECONDS)
この方法は、it'sは、サブグループ(6000)のリストを渡しておき24Hを実行する観察可能な間隔
から呼び出さしかし、私のログをチェックした後、私は遅延を見ることができません私のログのここでは50msの
3の私の要求の間
{"@timestamp":"2016-11-30T10:32:48.973+00:00","event":"started","requestHost":"localhost","requestMethod":"GET","requestUri":"/v3/comercial?category=T15EB&clientId=ERROR_NOT_SUPPLIED","requestHash":189630582,"level":"INFO","thread_name":"vert.x-eventloop-thread-5"}
{"@timestamp":"2016-11-30T10:32:48.978+00:00","event":"started","requestHost":"localhost","requestMethod":"GET","requestUri":"/v3/commercial?category=T15EE&clientId=ERROR_NOT_SUPPLIED","requestHash":1296199359,"level":"INFO","thread_name":"vert.x-eventloop-thread-5"}
{"@timestamp":"2016-11-30T10:32:48.981+00:00","event":"started","requestHost":"localhost","requestMethod":"GET","requestUri":"/v3/commercial?category=T15EG&clientId=ERROR_NOT_SUPPLIED","requestHash":228306365,"level":"INFO","thread_name":"vert.x-eventloop-thread-5"}
これを達成するために何が必要なのか?
よろしくお願いいたします。あなたがよりよい解決策を持っている場合、それは基本的に時間を無駄にしていますので、
私が使用して終了
SOLUTION concatMap
、私は
return from(subGroups)
.concatMap(subGroup -> Observable.just(subGroup).delay(50, TimeUnit.MILLISECONDS))
.flatMap(subGroup -> getProductIdsForSubGroup(subGroup))
ブリリアントソリューションは、私は完全にこのオプションを忘れてしまいましたの! – paul