2013-09-22 17 views
0

我是新來的Java Spring框架後,我的Rails開發者,我已經在Java春天一樣,我需要做後臺工作,但響應後要求發送給最終用戶。它不應該等待工作完成。但是每當行動完成時,這些工作就應該運行。回調函數做後臺作業在Java春天完成動作

是一個web服務應用程序。我們有Service,Bo和DAO層,我們記錄在響應發送給用戶之前處理數據庫中的用戶數據時發生的任何異常,但現在我們想要在響應發送給用戶之後移動(異常處理)以提高性能。

我記得在鐵軌我們有回調/過濾後的動作執行它要求我們要執行的方法。在Java Spring中可用嗎?

感謝, 塞特希

回答

0

我假設使用情況有點像一個用戶請求一個長時間運行的任務,並且要在後臺立即返回響應,然後啓動任務。

春天可以幫助這個。見

http://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/scheduling.html

特別是看到@Async註解。

對於客戶端得到一個響應返回下面的異步處理(異常或其他),你可以做到這一點,但它是額外的工作。

通常情況下,立即響應將包括某種ID的客戶端可以回來用一段時間後。 (例如,當您針對Splunk API運行搜索時,它會爲您提供一個作業ID,稍後您將返回該作業ID以檢查結果)。如果這有效,那就做。客戶必須輪詢,但實施是最簡單的。

如果沒有,那麼你必須有一些方法讓客戶端聽取響應。這可能是一個「回覆」客戶端(也許與原始請求作爲自定義X-Reply-To HTTP頭傳遞)上的Web服務端點,或者它可以是一個消息隊列,等等

+0

@Wille惠勒,感謝你的時間。我沒有完成你的鏈接,但它看起來像作業調度程序有什麼辦法像完成執行控制器/動作後調用這樣的工作。 –

+0

這是一個網絡應用程序?如果是這樣,那麼如果您試圖將結果傳回給用戶,那麼調用控制器不會起作用,因爲用戶請求已經完成。您可以詳細說明您的問題,並具體說明您正在嘗試做什麼。 –

+0

是的是一個web服務應用程序。我們有Service,Bo和DAO層,我們在響應發送給用戶之前插入發生在數據庫中的任何異常,但現在我們想要在響應發送給用戶之後移動(異常處理)以提高性能。 –

相關問題