当前位置: 首页 > 知识库问答 >
问题:

Tomcat7不等待异步请求在关机时完成其工作

唐健
2023-03-14

我对一个服务进行了10秒的Hibernate,并对服务器发出了curl请求,然后立即请求关闭tomcat服务。

curl在那里停留大约10秒钟,然后从Tomcat返回502

此外,在catalina.out中,我看到了以下堆栈跟踪:信息:等待1个实例被释放用于Servlet[jersey-Servlet]Dec.05,2018年7:13:37 PM org.apache.catalina.connector.coyoteAdapter checkrecreeded信息:遇到了一个未回收的请求并强制回收了它。在org.apache.catalina.connector.coyoteAdapter$recyerequeedException at org.apache.catalina.connector.coyoteAdapter.checkreceptied(coyoteAdapter.java:634)at org.apache.coyote.http11.abstractHttp11Processor.recycle(abstractHttp11Processor.java:1909)at org.apache.coyote.http11.http11nioProtocol$http11connectionHandler.release dorun(nioendpoint.java:1775)在org.apache.tomcat.util.net.nioendpoint$socketprocessor.run(Nioendpoint.java:1734)在java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1142)在java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.javer.617)在

遇到了一个未回收的请求,并强制回收了它。

我相信这表明某件事不像预期的那样起作用。似乎HTTP连接器被过早地关闭了。


共有1个答案

谢诚
2023-03-14

只是“为了完整性:

根据问题作者提交的这个Tomcat bug-https://bz.apache.org/bugzilla/show_bug.cgi?id=63003

所描述的问题是由Tomcat不尊重unloaddelay上下文设置引起的,现在已经解决了这个问题。

 类似资料:
  • 我通读了Dart/flatter中的Async/Await/then,试图理解为什么aysnc函数中的Await不会等到完成后再继续。在我的UI中,有一个按钮调用一个异步方法来返回一个位置,该位置总是返回null,并且不等待函数完成。 该函数将调用推送到一个新的UI页面,该页面选择一个位置,并应返回一个结果。如何使该函数等待结果?我不是在使用异步吗?

  • 问题内容: 在Bash中,可以通过追加在后台执行命令。如何在Python中完成? 问题答案: 我用。我在模块级别创建一个单例线程池,然后用于启动任务。 该命令给了我一个未来,我可以将它无限期地与其他未来添加到列表中,直到我想收集全部或部分结果为止。 出于所有逻辑和理由,是一个THREAD池而不是一个进程池。 示例(只要安装了请求,就可以在Python 2和3中使用): 这些请求将同时执行,因此运行

  • 问题内容: 我不确定如何处理这种情况,因为我是iOS开发和Swift的新手。我正在像这样执行数据获取: 我的loadShows()函数解析从加载到UIWebView的网站中获取的大量数据。问题是我在loadShows函数中有一个等待10秒钟左右的计时器。这允许页面中的javascript在开始解析数据之前完全加载。我的问题是完成处理程序在我的loadShows()之前完成。 我想做的是为“ isC

  • 我需要把所有的结果推入一个数组,使异步超文本传输协议调用,但我需要等到所有的调用都完成。 这里只有等待这个选项吗?我害怕使用它,因为等待每个请求会减慢整个过程。

  • 所以我在Angular中开发了一个新组件,在ngOninit中我有以下异步函数。。。 这getUserProfile需要完成才能调用它。getPrivateGroup()和这个。需要先完成getPrivateGroup(),然后才能调用此函数。loadGroupPosts()。我知道我可以在异步请求的回调中编写这些函数,但我想知道是否有一种方法可以将它保存在ngOnInit中以保持其更干净? 有人

  • 问题内容: 我目前正在等待所有承诺按顺序完成,如下所示: 但是,通过这种方式,配置文件和令牌将顺序执行。由于两者彼此独立,因此我希望两者一起独立执行。我认为可以使用Promise.all完成此操作,但是我不确定语法,也找不到任何帮助。 所以我的问题是如何转换上面的api调用以一起运行,然后返回最终输出。 问题答案: