From c9e48bd2dff2b5766589024cf7264189b5f2a05c Mon Sep 17 00:00:00 2001
From: dengzedong <dengzedong@email>
Date: 星期五, 03 一月 2025 14:03:33 +0800
Subject: [PATCH] cpp释放java占用内存

---
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/schedule/impl/ScheduleModelHandlerImpl.java |   20 ++++++++++++++++----
 1 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/schedule/impl/ScheduleModelHandlerImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/schedule/impl/ScheduleModelHandlerImpl.java
index ec0e7b0..0511350 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/schedule/impl/ScheduleModelHandlerImpl.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/schedule/impl/ScheduleModelHandlerImpl.java
@@ -28,6 +28,7 @@
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author PanZhibao
@@ -51,7 +52,8 @@
     private SampleConstructor sampleConstructor;
 
     @Override
-    public ScheduleResultVO doSchedule(String schemeCode, Date scheduleTime) throws ModelInvokeException {
+    public ScheduleResultVO doSchedule(String schemeCode, Date scheduleTime, Map<Integer, Integer> dynamicDataLength,
+                                       Map<String, String> dynamicSettings) throws ModelInvokeException {
         ScheduleResultVO scheduleResult = new ScheduleResultVO();
         StScheduleSchemeEntity scheduleScheme = stScheduleSchemeService.getByCode(schemeCode);
         StScheduleModelEntity scheduleModel = stScheduleModelService.get(scheduleScheme.getModelId());
@@ -63,7 +65,8 @@
         try {
             //1.根据模型id构造模型输入样本
             long now = System.currentTimeMillis();
-            List<SampleData> sampleDataList = sampleConstructor.constructSample(TypeA.Schedule.name(), modelId, scheduleTime,scheduleScheme.getName());
+            List<SampleData> sampleDataList = sampleConstructor.constructSample(TypeA.Schedule.name(), modelId, scheduleTime,
+                    scheduleScheme.getName(), dynamicDataLength);
             log.info("构造模型输入样本消耗时长:" + (System.currentTimeMillis() - now) / 1000 + "秒");
             if (CollectionUtils.isEmpty(sampleDataList)) {
                 log.info("调度模型构造样本失败,schemeCode=" + schemeCode);
@@ -71,7 +74,7 @@
             }
 
             IAILModel newModelBean = composeNewModelBean(scheduleModel);
-            HashMap<String, Object> settings = getScheduleSettingsByModelId(modelId);
+            HashMap<String, Object> settings = getScheduleSettingsByModelId(modelId, dynamicSettings);
             if (settings == null) {
                 log.error("模型setting不存在,modelId=" + modelId);
                 return null;
@@ -125,13 +128,22 @@
      * 根据模型id获取参数map
      *
      * @param modelId
+     * @param dynamicSettings
      * @return
      */
-    private HashMap<String, Object> getScheduleSettingsByModelId(String modelId) {
+    private HashMap<String, Object> getScheduleSettingsByModelId(String modelId, Map<String, String> dynamicSettings) {
         List<StScheduleModelSettingEntity> list = stScheduleModelSettingService.getByModelId(modelId);
         if (CollectionUtils.isEmpty(list)) {
             return null;
         }
+        //如果输入参数中包含setting,则覆盖默认的setting
+        if (!CollectionUtils.isEmpty(dynamicSettings)){
+            list.forEach(setting -> {
+                if (dynamicSettings.containsKey(setting.getKey())) {
+                    setting.setValue(dynamicSettings.get(setting.getKey()));
+                }
+            });
+        }
         HashMap<String, Object> result = new HashMap<>();
         for (StScheduleModelSettingEntity entry : list) {
             String valueType = entry.getValuetype().trim(); //去除两端空格

--
Gitblit v1.9.3