我正在編寫一個應用程序,它涉及到一些其他應用程序的異步調用。我的應用程序必須不斷髮送此請求到其他應用程序,直到我得到一個特定的響應。我可以在5秒內發送此請求。來自webapp的異步調用
使用一個線程將不會是一個好主意,這將是實現這一
的最佳實踐當我得到我必須將它保存在我的應用程序數據庫的具體迴應。
我正在編寫一個應用程序,它涉及到一些其他應用程序的異步調用。我的應用程序必須不斷髮送此請求到其他應用程序,直到我得到一個特定的響應。我可以在5秒內發送此請求。來自webapp的異步調用
使用一個線程將不會是一個好主意,這將是實現這一
的最佳實踐當我得到我必須將它保存在我的應用程序數據庫的具體迴應。
我不認爲有沒有另外的方式做到這一點,至少以某種方式創建一個新的線程(或使用一個不活動的)來做到這一點。但是,您可能正在尋找某些東西。 Spring提供了可以用來每5秒發送一個請求的任務任務。
要通過註解做到這一點,你必須首先這個命名空間添加到您的config.xml
xmlns:task="http://www.springframework.org/schema/task"
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.0.xsd
然後加入這樣的定義:
<task:annotation-driven>
如今終於,你可以添加這個簡單的註解到將執行請求到您的其他服務器的方法
@Scheduled(fixedRate = 5000) //time in milliseconds
更多信息o ñ這可以在這個site找到。
如果你不需要控制新的腳本,並且當那些線程請求必須死掉,你可以使用Spring異步。 https://spring.io/guides/gs/async-method/
如果你想要一個額外的控制,你可以使用Spring的DeferredResult以及 http://www.javacodegeeks.com/2013/03/deferredresult-asynchronous-processing-in-spring-mvc.html 這最後一個將作品作爲未來的對象。