From c9a49dd6c5f6bc1115c2a12f3097925a53d5bf7e Mon Sep 17 00:00:00 2001 From: TangCheng <tangchengmail@163.com> Date: 星期日, 20 四月 2025 09:37:44 +0800 Subject: [PATCH] 修复资源泄露bug, --- JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/scheduledTasks/checkForTicketStatusChanges.java | 79 ++++++++++++++++++++++----------------- JAVA/SMTAIServer/src/main/resources/requestmap/system_manager.json | 2 JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/core/SMTAIServerApp.java | 8 ++++ 3 files changed, 53 insertions(+), 36 deletions(-) diff --git a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/core/SMTAIServerApp.java b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/core/SMTAIServerApp.java index 4415788..cebe792 100644 --- a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/core/SMTAIServerApp.java +++ b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/core/SMTAIServerApp.java @@ -378,6 +378,14 @@ } } + public int getSystemDatasourceUsgae() + { + if(_dsDataSource == null) + return -1; + + return _dsDataSource.getActiveCount(); + } + public void getDatasourceUsgaeToJson(SMTJsonWriter jsonWr) throws Exception { if(_dsDataSource == null) diff --git a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/scheduledTasks/checkForTicketStatusChanges.java b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/scheduledTasks/checkForTicketStatusChanges.java index 438e58b..d0ed99f 100644 --- a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/scheduledTasks/checkForTicketStatusChanges.java +++ b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/scheduledTasks/checkForTicketStatusChanges.java @@ -6,6 +6,8 @@ import com.smtaiserver.smtaiserver.javaai.llm.core.SMTLLMConnect; import com.smtaiserver.smtaiserver.javaai.qwen.agent.SMTQwenAgent; import com.smtservlet.util.Json; +import com.smtservlet.util.SMTJsonWriter; + import java.util.Calendar; import java.util.Date; import lombok.extern.log4j.Log4j2; @@ -43,6 +45,8 @@ cal.add(Calendar.MINUTE, -5); Date time = cal.getTime(); + _logger.info("aaaaaaaaaaaaaa : " + SMTAIServerApp.getApp().getSystemDatasourceUsgae()); + try(SMTDatabase db = SMTAIServerApp.getApp().allocDatabase()) { SMTDatabase.DBRecords dbRecords = @@ -67,8 +71,8 @@ SMTAIServerRequest _tranReq = new SMTAIServerRequest(); agent.callAgents("/", jsonArgs, llm, "", _tranReq); } - } + _logger.info("bbbbbbbbbbbbbbbbbbb : " + SMTAIServerApp.getApp().getSystemDatasourceUsgae()); } catch (Exception e) { _logger.error("checkForTicketStatusChanges error", e); @@ -82,39 +86,44 @@ */ @Scheduled(cron = "0/10 * * * * ?") public void execCheckForTicketStatusChangesByFinish() throws Exception { - _logger.info("start checkForTicketStatusChanges task"); - SMTDatabase db = SMTAIServerApp.getApp().allocDatabase(); - Date date = new Date(); - Calendar cal = Calendar.getInstance(); - cal.setTime(date); - cal.add(Calendar.MINUTE, -5); - Date time = cal.getTime(); - - try { - SMTDatabase.DBRecords dbRecords = - db.querySQL( - "select order_id from work_order_list where is_notify =? and status_update_time > ? and stepstatus =4", - new Object[] {"N", time}); - - _logger.info("鏌ヨ鍒扮姸鎬佷负宸插畬鎴愮殑宸ュ崟鐨勬暟閲忥細{}", dbRecords.getRowCount()); - for (SMTDatabase.DBRecord rec : dbRecords.getRecords()) { - String agentId = - (String) - SMTAIServerApp.getApp() - .getGlobalConfig( - "work_order.workflow_agent_finish", "status_changes_received_order"); - Json jsonArgs = Json.object("question", "", "order_id", rec.getString("order_id")); - - SMTQwenAgent agent = SMTAIServerApp.getApp().getQwenAgentManager().getAgentById(agentId); - if (agent == null) throw new Exception("can't find agent : " + agentId); - SMTLLMConnect llm = SMTAIServerApp.getApp().allocLLMConnect(null); - - SMTAIServerRequest _tranReq = new SMTAIServerRequest(); - agent.callAgents("/", jsonArgs, llm, "", _tranReq); - } - - } catch (Exception e) { - _logger.error("checkForTicketStatusChanges error", e); - } + _logger.info("start checkForTicketStatusChanges task"); + try + { + Date date = new Date(); + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + cal.add(Calendar.MINUTE, -5); + Date time = cal.getTime(); + + try(SMTDatabase db = SMTAIServerApp.getApp().allocDatabase()) + { + SMTDatabase.DBRecords dbRecords = + db.querySQL( + "select order_id from work_order_list where is_notify =? and status_update_time > ? and stepstatus =4", + new Object[] {"N", time}); + + _logger.info("鏌ヨ鍒扮姸鎬佷负宸插畬鎴愮殑宸ュ崟鐨勬暟閲忥細{}", dbRecords.getRowCount()); + for (SMTDatabase.DBRecord rec : dbRecords.getRecords()) { + String agentId = + (String) + SMTAIServerApp.getApp() + .getGlobalConfig( + "work_order.workflow_agent_finish", "status_changes_received_order"); + Json jsonArgs = Json.object("question", "", "order_id", rec.getString("order_id")); + + SMTQwenAgent agent = SMTAIServerApp.getApp().getQwenAgentManager().getAgentById(agentId); + if (agent == null) throw new Exception("can't find agent : " + agentId); + SMTLLMConnect llm = SMTAIServerApp.getApp().allocLLMConnect(null); + + SMTAIServerRequest _tranReq = new SMTAIServerRequest(); + agent.callAgents("/", jsonArgs, llm, "", _tranReq); + } + + } + } + catch (Exception e) + { + _logger.error("checkForTicketStatusChanges error", e); + } } } diff --git a/JAVA/SMTAIServer/src/main/resources/requestmap/system_manager.json b/JAVA/SMTAIServer/src/main/resources/requestmap/system_manager.json index b695671..a3afc5b 100644 --- a/JAVA/SMTAIServer/src/main/resources/requestmap/system_manager.json +++ b/JAVA/SMTAIServer/src/main/resources/requestmap/system_manager.json @@ -338,7 +338,7 @@ ] }, - "admin/system/get_resource_usage":{"map":{"class":"#SMTSystemManagerControl", "method":"getResourceUsage"}, + "admin/system/get_resource_usage":{"map":{"class":"#SMTSystemManagerControl", "method":"getResourceUsage"}, "no_shrio":true, "swaggers":[ { "tags" : ["璧勬簮绠$悊"], "title" : "鏌ョ湅璧勬簮淇℃伅", -- Gitblit v1.9.3