0

多くのクライアントからリクエストを受け取り、いくつかの処理後にクライアントにレスポンスを送信するサービスがあります。ThreadPoolExecutor (threadExecuterClient) を使用してクライアント リクエストを処理し、BlockingQueue (requestQueue) に入れます。多くのクライアントが同時リクエストを送信できます。requestQueue でリクエストを処理する別の ThreadPoolExecutor (threadExecuterServer) があります。この処理は、基本的にはそのリクエストをサーバーに送り、レスポンスを得るというものです。処理後、そのリクエストを行ったクライアントにそのレスポンスを送信する必要があります。どのクライアントがどのリクエストを行ったかを追跡するのが困難です。基本的に、クライアントのリクエストを処理の結果にマップする方法を見つける必要があります。サービスはゲートウェイのようなものになります。

この問題を処理するためのアイデアは大歓迎です。

ありがとう

4

1 に答える 1

0

あなたのサービスは HTTP 経由でリクエストを受け入れると思いますか? サービスからのリクエストを受け入れ、HTTP 202レスポンスを返します。この応答は、要求が処理のために受け入れられたことを意味します。応答を送信するときは、Locationヘッダーを送信して、要求のステータスを確認するために呼び出す URL をクライアントに伝えます。クライアントは、この URL をポーリングしてステータスと結果を得ることができます。

URL には、リクエストごとに一意の ID が含まれている必要があります。サーバーはそれを追跡し、準備ができたら応答を入力できます。

于 2013-03-05T17:59:31.503 に答える