From d94264b205b37628748705b894248f97210977f8 Mon Sep 17 00:00:00 2001
From: 秦芳睿 <1425609123@qq.com>
Date: 星期二, 22 四月 2025 09:31:10 +0800
Subject: [PATCH] perf(server): 增大数据库连接池最大活跃数

---
 JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/scheduledTasks/checkForTicketStatusChanges.java |  156 +++++++++++++++++++--------------------------------
 1 files changed, 59 insertions(+), 97 deletions(-)

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 d0ed99f..14c9b03 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
@@ -10,6 +10,8 @@
 
 import java.util.Calendar;
 import java.util.Date;
+import java.util.Objects;
+
 import lombok.extern.log4j.Log4j2;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -26,104 +28,64 @@
 @Log4j2
 @Component
 public class checkForTicketStatusChanges {
-  private static final Logger _logger = LogManager.getLogger(checkForTicketStatusChanges.class);
+    private static final Logger _logger = LogManager.getLogger(checkForTicketStatusChanges.class);
 
-  /**
-   * 宸ュ崟鐘舵�佽浆鍙樹负 宸叉帴鍗�
-   *
-   * @throws Exception
-   */
     @Scheduled(cron = "0/10 * * * * ?")
-  public void execCheckForTicketStatusChangesByOrdersTaken() throws Exception {
-    _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();
-	
-	    _logger.info("aaaaaaaaaaaaaa : " + SMTAIServerApp.getApp().getSystemDatasourceUsgae());
-	    
-	    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 =1",
-	              new Object[] {"N", time});
-	
-	      _logger.info("鏌ヨ鍒扮姸鎬佷负宸叉帴鍗曠殑宸ュ崟鐨勬暟閲忥細{}", dbRecords.getRowCount());
-	      for (SMTDatabase.DBRecord rec : dbRecords.getRecords()) {
-	        String agentId =
-	            (String)
-	                SMTAIServerApp.getApp()
-	                    .getGlobalConfig(
-	                        "work_order.workflow_agent_re", "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);
-	      }
-	    } 
-    _logger.info("bbbbbbbbbbbbbbbbbbb : " + SMTAIServerApp.getApp().getSystemDatasourceUsgae());
-    }
-    catch (Exception e) {
-      _logger.error("checkForTicketStatusChanges error", e);
-    }
-  }
+    public void execCheckForTicketStatusChanges() throws Exception {
+        String result = (String) SMTAIServerApp.getApp().getGlobalConfig("work_order.inner_order", null);
+        if (Objects.equals(result, "N")) {
+            return;
+        }
+        _logger.info("start execCheckForTicketStatusChanges task");
+        try {
+            Date date = new Date();
+            Calendar cal = Calendar.getInstance();
+            cal.setTime(date);
+            cal.add(Calendar.MINUTE, -5);
+            Date time = cal.getTime();
 
-  /**
-   * 宸ュ崟鐘舵�佽浆鍙樹负 宸插畬鎴�
-   *
-   * @throws Exception
-   */
-    @Scheduled(cron = "0/10 * * * * ?")
-  public void execCheckForTicketStatusChangesByFinish() throws Exception {
-	    _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);
-		}
-  }
+            try (SMTDatabase db = SMTAIServerApp.getApp().allocDatabase()) {
+                SMTDatabase.DBRecords dbRecords =
+                        db.querySQL(
+                                "select order_id, stepstatus from work_order_list where is_notify = ? and status_update_time > ? and stepstatus in (1, 4)",
+                                new Object[]{"N", time});
+
+                _logger.info("鏌ヨ鍒扮姸鎬佷负銆愬凡鎺ュ崟 鎴� 宸插畬鎴愩�戠殑宸ュ崟鏁伴噺锛歿}", dbRecords.getRowCount());
+
+                for (SMTDatabase.DBRecord rec : dbRecords.getRecords()) {
+                    String orderId = rec.getString("order_id");
+                    int stepstatus = rec.getInteger("stepstatus");
+
+                    String configKey;
+                    switch (stepstatus) {
+                        case 1:
+                            configKey = "work_order.workflow_agent_re";
+                            break;
+                        case 4:
+                            configKey = "work_order.workflow_agent_finish";
+                            break;
+                        default:
+                            _logger.warn("涓嶆敮鎸佺殑stepstatus: {}", stepstatus);
+                            continue;
+                    }
+
+                    String agentId = (String) SMTAIServerApp.getApp().getGlobalConfig(configKey, "status_changes_received_order");
+
+                    SMTQwenAgent agent = SMTAIServerApp.getApp().getQwenAgentManager().getAgentById(agentId);
+                    if (agent == null) {
+                        _logger.error("鎵句笉鍒癆gent: {}", agentId);
+                        continue;
+                    }
+
+                    Json jsonArgs = Json.object("question", "", "order_id", orderId);
+                    SMTLLMConnect llm = SMTAIServerApp.getApp().allocLLMConnect(null);
+                    SMTAIServerRequest _tranReq = new SMTAIServerRequest();
+                    agent.callAgents("/", jsonArgs, llm, "", _tranReq);
+                }
+            }
+        } catch (Exception e) {
+            _logger.error("execCheckForTicketStatusChanges error", e);
+        }
+    }
+
 }

--
Gitblit v1.9.3