2016-01-20 69 views
0

我有一個Spring Web應用程序,我在幾個URL上調用Http GET並使用結果對數據庫進行udpdate。我的問題是,GET有多快(或慢)? 我應該使用第二個線程在URL列表上執行此操作,並在主線程中等待此操作完成嗎?例如,如果其中一個URL沒有響應(或以某種方式緩慢)會阻止我的程序嗎?或者它會立即響應相應的代碼?Http GET響應時間

+0

春天有一個功能用於異步查詢。 [異步方法](https://spring.io/guides/gs/async-method/) – Raghu

+0

我知道,但問題是:在這種情況下,它是一個好主意/必要嗎? – jarosik

+0

它完全取決於您的用例。如果所有用戶必須完成的操作取決於這些調用後獲得的結果,那麼這是一個糟糕的主意。但是如果有其他操作/任務可以繼續獨立於結果然後你可以繼續。從用戶的角度思考。如果你的應用程序的響應能力可以通過異步調用得到改善,那麼我建議你繼續這個實現。 – Raghu

回答

0

遠程I /過與高延遲(互聯網)網絡O操作通常是。如果遠程服務調用你想訪問(在你的例子中的GET請求)是相互獨立的,即。你不需要一個調用的結果來調用另一個調用的結果,那麼通過啓用異步處理來引入並行性是非常簡單/直接的。 Spring's async infrastructure可能是一個很好的候選人。如果他們彼此依賴,則會更復雜一些。你可以使用一個名爲Reactive Programming的編程範例和一個相應的實現,如RxJava。有關更多詳細信息,請參見ReactiveX

如果你有很多這樣的呼籲作出了一個請求/請求週期這是絕對值得的響應時間性能方面的努力。