[英]Kill a request taking too long in Java servlet
我有一個簡單的Java Servlet應用程序在運行。 它有幾個端點。 盡管服務速度非常快,但我收到的一些請求有時會比預期花費更多時間。 什么是殺死任何超過約20秒的處理請求的最佳方法?
如果要中斷請求處理線程並且使用Tomcat,可以嘗試使用Stuck Thread Detection Valve :
interruptThreadThreshold
最小持續時間(以秒為單位),之后應該中斷卡住的線程以試圖“釋放”它。
請注意,無法保證線程會被取消。 這通常適用於卡在I / O或鎖上的線程,但在無限循環的情況下可能無用。
默認值為-1,禁用該功能。 要啟用它,該值必須大於或等於閾值。
在客戶端實現Circuit Breaker可能更好,因為不能保證interruptThreadThreshold
適用於所有場景。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.