TangCheng
10 天以前 c9a49dd6c5f6bc1115c2a12f3097925a53d5bf7e
修复资源泄露bug,
已修改3个文件
89 ■■■■■ 文件已修改
JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/core/SMTAIServerApp.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/scheduledTasks/checkForTicketStatusChanges.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JAVA/SMTAIServer/src/main/resources/requestmap/system_manager.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
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)
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);
        }
  }
}
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" : "查看资源信息",