2017-06-18 103 views
0

我有一項服務依賴於多個資源。 該服務具有初始化邏輯,用於檢查這些資源是否已啓動並正在運行,並相應地啓動/停止服務。初始化時掛起彈簧服務

的問題是,其他服務是通過REST解決我的服務,它加載時。然後嘗試回覆(在不同的線程中),並在嘗試回覆尚未使用的資源和崩潰之一時嘗試回覆。

有沒有一種方式,以「鎖定」,而它加載,以便未來將其與外界的任何請求將返回「服務不可用」,而它在它的加載過程的服務?

有很多對服務的請求,我不wan't到一個「檢查資源狀況」的邏輯到每一個處理一個HTTP請求方法。我希望能夠阻止所有請求,並在所有資源啓動時解除阻止它們。

任何幫助將是偉大的。 (我還不太熟悉Spring)。

+0

是否有可能不生成REST服務線程,除非直到您的初始化邏輯返回true或false? –

+0

不幸的是,在正確的時刻,沒有。 – elmekiesIsrael

回答

0

假設這些資源異步初始化,您可以編寫一個FilterInterceptor來篩選請求,並在資源未加載時重新執行503。

Here's如何配置的過濾器的例子。如果您想要在資源級別處理/攔截請求(例如here),則甚至可以編寫攔截器,但是,由於要過濾所有傳入請求,因此我建議繼續執行Filter