工人任务在 WildFly 中多次生成
Worker tasks spawned multiple times in WildFly
我有一个应用程序,我的前端用 Angular 编写,后端用 java 编写,spring 部署在 WildFly 上。前端正在与后端 REST 服务进行通信。有一项特定服务(比如 service-X )有一个 HIVE 查询,执行大约需要 120 秒。我已经设置了一些登录到应用程序的功能。
现在奇怪的部分来了:
调用此 REST 时,会发生以下情况:
- ajpworker task-1 被生成并且它在 HIVE JDBC 连接上命中 SQL,比如在 t 时间和等待。
- 30 秒后,即 t+30 ajpworker task-2 生成并点击 SQL 并等待。
- 30 秒后 ajpworker task-3 被生成并做类似的事情。
在 t+90 之后发生超时,ajpworker task-1 的连接中断。其他工人也类似。这部分是可以理解的,请求从 Angular 超时,因此连接中断。
但无法理解为什么在 30 秒后会产生多个工作任务。这与 WildFly 中存在的配置文件(类似于 worker.properties)有关吗?
终于找到了这背后的根本原因。
由于在我的 Wildfly 配置文件中将 JBOSS_SocketTimeout 参数设置为 30 秒,因此产生了多个 ajp 线程。将其更改为 180 秒(REST 可以响应的最长时间)并且工作正常。
我有一个应用程序,我的前端用 Angular 编写,后端用 java 编写,spring 部署在 WildFly 上。前端正在与后端 REST 服务进行通信。有一项特定服务(比如 service-X )有一个 HIVE 查询,执行大约需要 120 秒。我已经设置了一些登录到应用程序的功能。 现在奇怪的部分来了: 调用此 REST 时,会发生以下情况:
- ajpworker task-1 被生成并且它在 HIVE JDBC 连接上命中 SQL,比如在 t 时间和等待。
- 30 秒后,即 t+30 ajpworker task-2 生成并点击 SQL 并等待。
- 30 秒后 ajpworker task-3 被生成并做类似的事情。
在 t+90 之后发生超时,ajpworker task-1 的连接中断。其他工人也类似。这部分是可以理解的,请求从 Angular 超时,因此连接中断。
但无法理解为什么在 30 秒后会产生多个工作任务。这与 WildFly 中存在的配置文件(类似于 worker.properties)有关吗?
终于找到了这背后的根本原因。 由于在我的 Wildfly 配置文件中将 JBOSS_SocketTimeout 参数设置为 30 秒,因此产生了多个 ajp 线程。将其更改为 180 秒(REST 可以响应的最长时间)并且工作正常。