我有一個Java REST風格的web服務,每隔10秒會被另一個進程調用。如果條件正確,Web服務需要執行一個潛在的廣泛的ETL過程(比如說10-20秒)。但是,我們希望立即返回調用應用程序,指出已將有效內容成功傳遞到Web服務。當工作線程繼續時,主線程能否在RESTful webservice中結束?
要求摘要:
- 驗證認證和輸入參數。
- 如果驗證失敗,則返回XML中的錯誤。
- 啓動執行ETL過程的線程。過程只會在某些條件下進行。
- 返回指示已發送的有效負載和已通過輸入驗證的XML。
我已經編寫這一點,它似乎正常運行。但這看起來不正確。我創建的線程可能比主Web服務線程運行時間更長。
任何人都想指點我一個更好的方式來做到這一點?
謝謝你的想法。我已經在一個單例中實現了一個ExecutorService。我還在我的線程類中使用Callable <>接口,以便我可以跟蹤線程的結果並稍後介紹一些代碼來檢查失控線程。 – BigRedBettaFish