3

私の Spring アプリケーションでは、RESTTemplate を使用して外部 API からいくつかの情報を取得します。この API では、リクエストを行うと、別のリクエストを行うまでそのレスポンスを待つ必要があります。だからこそ、これをどうしようか悩んでいます。もちろん、この API からの応答時間は毎回異なるため、タイマーなどを使用することはできません。

残念ながら、このアプリには RESTTemplate が必要であり、変更できません。

4

2 に答える 2

2

シングルトン Bean でフラグを使用して、これを実装できます。サービスを呼び出す前に、それが であるかどうかを確認してくださいfalsefalseフラグtrueを立ててサービスを呼び出す場合。終了する前にフラグを立てfalseます。

そのflag == trueため、サービスが進行中の場合は、新しいリクエストを送信できます。

于 2012-09-15T18:02:13.327 に答える
1

通常、リクエストを行うときは応答を待つ必要がありますが、受信データをリッスンしているサーバーソケットを開き、応答を受信したら、それがどのような種類の応答であるかを確認してから、それを受け入れるか拒否することができます。したがって、クライアント ソケットで要求を行い、サーバー ソケットで応答を受け取ります。

http://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html

http://docs.oracle.com/javase/6/docs/api/java/net/ServerSocket.html

于 2012-09-15T11:03:53.400 に答える