在發送郵件的時候,由于不想影響用戶體驗,所以在主執行緒開啟一個新的行程(95-97行)發送郵件,開啟執行緒后使用return redirect進行重定向到評論片段重繪的介面。
在本地測驗的時候,毫無問題,評論重繪可以立刻重繪,郵件發送也正常。打包成jar后也依舊正常,但是一旦部署到docker后,評論就重繪不了, 在控制臺可以輸出aaa(98行),所以應該執行了return,但是卻不知道為什么不能呼叫另一個函式,控制臺無例外,多執行緒內直接捕獲Exception,也無例外顯示,可以排除是重定向代碼的問題,因為其他地方的重定向代碼正常。
請各位大佬幫忙支支招,一個bug改了兩天了,謝謝啦
uj5u.com熱心網友回復:
沒有看到你的執行緒實作的處理,可能執行緒關閉處理不完善,導致docker中執行緒數達到系統最大限制。建議修改實作方式,你的post處理中,將郵件資訊發給訊息系統,由一個訊息處理佇列來處理,實作異步郵件發送。
或者寫入一個資料庫表,作為訊息佇列,另外一個執行緒定時查詢此資料庫表,并發送郵件。這個處理方式不用加訊息系統
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/243674.html
標籤:Java EE
下一篇:求救救孩子
