Jetty的優雅關閉

Jetty的關閉,能夠調用Server.stop()方法,這個方法先關閉connections,而後處理隊列中未完成的request。這裏有個問題,未完成的request還會寫響應,但此時connection已經關閉了。 chazovams在issues中提了這個問題,gregw給瞭解決辦法。git

chazovams: Jetty中Server.stop()方法先關閉connections,而後處理隊列中未完成的request。在個人應用中,request完成後,因爲connection已經關閉了,響應不能寫回去了。我用的是9.4.7版本,我怎麼才能避免request‘完成’以前不要關閉connection?github

gregw: 嗨chazovams 你是否配置了stats handler,和一個positive stop超時參數?eclipse

chazovams: stop超時默認值是30s,我沒有設置stats handler。但當我設置這個stats handler後能夠關閉了,你能解釋一下,爲何不設置這個handler就不能優雅的關閉嗎?我使用的是SpringBoot,我發現只能在Server Customizer中設置,但我不想這麼作。隊列

gregw: 沒有stats handler,Jetty不知道未完成的request數量。正是stats handler在統計這個數量count,並且在stats handler優雅關閉時,它要等到count到0。ip

https://github.com/eclipse/jetty.project/issues/2076get

Jetty的優雅關閉,須要配置一個stats handler和一個positive stop超時參數。it

相關文章
相關標籤/搜索