spring MVC即使请求超时后,可调用执行是否仍继续?

spring MVC即使请求超时后,可调用执行是否仍继续?,第1张

spring MVC即使请求超时后,可调用执行是否仍继续?

当Servlet容器线程检测到异步可调用对象已超时时,它将调用handleTimeout()(在其自己的上下文中)。这就是您看到handleTimeout()被执行的原因。它由Servlet容器线程而不是由运行Callable的线程执行。

如果要自定义超时处理,则需要做两件事:

  1. 在您的WebAsyncTask中重写onTimeout()。当提供给onTimeout()回调的回调函数提供的任何可调用对象都将在servlet容器线程中被调用时,它将检测到您的可调用对象已超时。
  2. 检查您在控制器内部创建的Callable中的超时/中断。如果您的Callable不期望并尊重中断(“如果目标线程未轮询中断状态,则该中断将被有效忽略”),无法中断它!请参考此答案以了解如何期望并尊重中断。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5676080.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存