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