2017-06-18 9 views
0

私はいくつかのリソースに依存するサービスを持っています。 このサービスには、これらのリソースが稼動しているかどうかをチェックし、それに応じてサービスを開始または停止する初期化ロジックがあります。初期化中にスプリングサービスを中断する

問題は、他のサービスがロード中にREST経由でサービスをアドレス指定していることです。それから、(別のスレッドで)返答しようとしますが、そうでなければ、利用できないリソースやクラッシュのいずれかに接続しようとします。

ローディング中にサービスをロックする方法はありますか?ローディング中に外部からのリクエストが「サービスが利用できません」という返信が返されるようにする方法はありますか?

サービスには多くのリクエストがあり、HTTPリクエストを処理するすべてのメソッドに「リソース状態の確認」ロジックを追加することはありません。私は、すべてのリクエストをブロックし、すべてのリソースがアップしているときにそれらのリクエストをブロックできるようにしたい。

どのようなヘルプも素晴らしいでしょう。 (私はまだ春に精通していません)。

+0

初期化ロジックがtrueまたはfalseを返さない限り、RESTサービススレッドを生成しないことは可能ですか? –

+0

残念ながら、正しい瞬間ではありません。 – elmekiesIsrael

答えて

0

これらのリソースが非同期で初期化されると仮定すると、FilterまたはInterceptorを記述して要求をフィルタリングし、リソースがロードされていない場合には503を戻すことができます。

Here'sフィルタの設定方法の例。リソースレベル(例:here)でリクエストを処理/傍受したい場合はインターセプタを作成することもできますが、すべての着信リクエストをフィルタリングしたいので、先にFilterをお勧めします。

関連する問題