OutputStream outputStream = new BufferedOutputStream(response.getOutputStream())輸出一個檔案,如果是直接運行SpringBoot的jar包,下載一個較大的檔案程序中,取消下載,會觸發Exception(Throwable),代碼會捕獲到例外connection reset by peer。
在Docker中,如果是一個特別大的檔案(大約100多MB),它會在短時間內flush(有下載開始時間和結束時間,job id is : 83205 use byteStream download consume time 1206ms)完,此時瀏覽器中可能只下載了幾MB,即使取消下載,Java的try-catch也不會捕捉到任何例外。如果在下載的初期,手速夠快,取消一次,報的例外時java.io.IOException: Broken pipe。
請問如何在Docker中,和直接運行jar一樣,取消下載也能進入try-catch的例外?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/44165.html
標籤:Docker
