我使用Jersey HTTP服務器以及Jersey客戶端進行REST請求。澤西長時間運行的請求超時
客戶端向服務器發送文件,服務器處理文件並向客戶端返回響應。我的問題是,服務器上的處理可能需要幾分鐘,甚至可能需要1/2小時。
我希望客戶端知道請求是否在響應中失敗或成功。不過,我將客戶端的readTimeout設置爲60秒,因爲我讀過,將其設置爲0是一種不好的做法。因此,我有時會在客戶端上獲得SocketTimeoutException
。
禁用readTimeout是否安全(將其設置爲0)? connectTimeout仍然是10秒。
或者我可以使用TCP保持活着?據我瞭解,它只發送那些數十分鐘大的數據包(取決於操作系統)。
還有什麼我可以做,而不是立即返回一個令牌,然後用令牌輪詢服務器,如果處理成功了嗎?我讀了一些關於心跳包的地方。這可以用嗎?
我怎麼知道服務器準備好了?這將需要再次輪詢。 – Bantak