2016-04-27 48 views
0

我想取消或停止请求在X秒前发出的线程,例如,避免系统超载,提高整体稳定性。这可能与码头> = 9?码头:中断持久请求(超时更早)

我试过connector0.setIdleTimeout但它似乎没有任何效果,例如将其设置为1000(ms)并延迟我的响应10000ms应该会导致超时但不会。

我已经找到了邮件列表herehere类似的问题和SO相关的问题是hereherehere 但都没有从码头一个内置的解决方案。

无法设置套接字的读取超时吗?

或者是从邮件列表中正确的语句:

Servlet规范不允许码头中断已分派线程

回答

0

减轻过大的负荷通过其他方式来完成,而不是通过严厉杀死/中断线程(即使核心Java类阻止!!)

考虑使用DoSFilter,0 QoSFilterLowResourceMonitor mit改为过度加载。

+0

好的,谢谢!是否有一个过滤器可以发送信号或者在某个地方更改我的课程的变量这样我可以使用这个变量来决定它是否被“中断”? – Karussell

+0

线程无法在jetty,servlet规范或java jvm中成功中断。所以不行。它不存在。不要试图杀死已经存在的东西,在事情发生之前尽量限制过多的问题。 –

+0

我的意思是'杀死'线程的安全程序:例如http://stackoverflow.com/a/11387729/194609 – Karussell