有什麼方法可以檢查異步ServletRequest是否從AsyncContext完成?我看到那個春天有一些wrapper that supports this,但是在標準庫中找不到任何東西。這正是我所希望的。我可以檢查異步請求是否完成?
我使用Tomcat 7
有什麼方法可以檢查異步ServletRequest是否從AsyncContext完成?我看到那個春天有一些wrapper that supports this,但是在標準庫中找不到任何東西。這正是我所希望的。我可以檢查異步請求是否完成?
我使用Tomcat 7
聽起來像一個兩個 - 你要麼需要一個聽衆將一個異步請求完成後調用,或者您不需要使用異步請致電。
你的問題有點過於籠統。
一般說來 - 異步呼叫用於呼叫者對呼叫的即時結果不感興趣時。 如果主叫方有興趣立即知道該呼叫的結果,則應使用同步呼叫。 如果調用者沒有興趣立即知道結果(例如它有次要優先級,如登錄某些業務應用程序),但在執行異步調用時應執行一些操作,您應該使用某種聽衆。
你需要異步調用的是一些監聽(類javax.servlet.AsyncListener的)。
在聽衆你肯定知道的異步調用結束(的onComplete方法),並可以執行一些動作來完成/補充異步調用。
再次,如果您發現請求的調用者需要立即知道結果,那麼您的架構中可能存在錯誤。你應該使用同步呼叫 - 等待直到通話完成,你將得到它的結果。在這種情況下,使用異步呼叫是錯誤的。
我看到人們如何使用某種形式的循環,從時間到檢查時間異步調用的結果,但它看起來像在例99.99%,這樣的做法是一些架構錯誤的結果。
您可以註冊可以實現onComplete()方法的AsyncListener。
需要將AsyncListener添加到AsyncContext中。
謝謝,聽衆處理它 – Geronimo 2013-03-16 19:12:09