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

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