我有一個應(yīng)用程序,前端是用 Angular 編寫的,后端是用 java 編寫的,Spring 部署在 WildFly 上。前端正在與后端 REST 服務(wù)進行通信。有一項特定服務(wù)(例如service-X)有一個 HIVE 查詢,執(zhí)行時間大約為 120 秒。我已經(jīng)設(shè)置了一些登錄應(yīng)用程序的功能?,F(xiàn)在奇怪的部分來了:當調(diào)用這個 REST 時,會發(fā)生以下事情:ajpworker task-1被生成,它在 HIVE JDBC 連接上執(zhí)行 SQL,比如在t時間并等待。30 秒后,即t+30 ajpworker task-2被生成并執(zhí)行 SQL 并等待。30 秒后ajpworker task-3被生成并執(zhí)行類似的操作。t+90后,發(fā)生超時,并且ajpworker task-1的連接中斷。其他工人也類似。這部分是可以理解的,因為 Angular 的請求超時,因此連接中斷。但無法理解為什么 30 秒后會產(chǎn)生多個工作任務(wù)。這是否與 WildFly 中存在的配置文件(類似于worker.properties)有關(guān)。
1 回答

精慕HU
TA貢獻1845條經(jīng)驗 獲得超8個贊
終于找到了這背后的根本原因。由于我的 Wildfly 配置文件中的 JBOSS_SocketTimeout 參數(shù)設(shè)置為 30 秒,因此產(chǎn)生了多個 ajp 線程。將其更改為 180 秒(REST 響應(yīng)所需的最長時間),效果很好。
添加回答
舉報
0/150
提交
取消