فهرست منبع

feat: use softValues to optimize memory usage

tjq 2 سال پیش
والد
کامیت
7b56393aee

+ 4 - 0
powerjob-server/powerjob-server-core/src/main/java/tech/powerjob/server/core/service/CacheService.java

@@ -44,18 +44,22 @@ public class CacheService {
         jobId2JobNameCache = CacheBuilder.newBuilder()
                 .expireAfterWrite(Duration.ofMinutes(1))
                 .maximumSize(512)
+                .softValues()
                 .build();
 
         workflowId2WorkflowNameCache = CacheBuilder.newBuilder()
                 .expireAfterWrite(Duration.ofMinutes(1))
                 .maximumSize(512)
+                .softValues()
                 .build();
 
         instanceId2AppId = CacheBuilder.newBuilder()
                 .maximumSize(1024)
+                .softValues()
                 .build();
         jobId2AppId = CacheBuilder.newBuilder()
                 .maximumSize(1024)
+                .softValues()
                 .build();
     }
 

+ 10 - 11
powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/defaultimpl/alarm/impl/DingTalkAlarmService.java

@@ -1,25 +1,24 @@
 package tech.powerjob.server.extension.defaultimpl.alarm.impl;
 
-import lombok.RequiredArgsConstructor;
-import tech.powerjob.common.OmsConstant;
-import tech.powerjob.common.exception.PowerJobException;
-import tech.powerjob.common.utils.NetUtils;
-import tech.powerjob.server.common.PowerJobServerConfigKey;
-import tech.powerjob.server.common.SJ;
-import tech.powerjob.server.persistence.remote.model.UserInfoDO;
-import tech.powerjob.server.extension.defaultimpl.alarm.module.Alarm;
-import tech.powerjob.server.extension.Alarmable;
 import com.google.common.cache.Cache;
 import com.google.common.cache.CacheBuilder;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Service;
+import tech.powerjob.common.OmsConstant;
+import tech.powerjob.common.exception.PowerJobException;
+import tech.powerjob.common.utils.NetUtils;
+import tech.powerjob.server.common.PowerJobServerConfigKey;
+import tech.powerjob.server.common.SJ;
+import tech.powerjob.server.extension.Alarmable;
+import tech.powerjob.server.extension.defaultimpl.alarm.module.Alarm;
+import tech.powerjob.server.persistence.remote.model.UserInfoDO;
 
 import javax.annotation.PostConstruct;
-import javax.annotation.Resource;
 import java.util.List;
 import java.util.Set;
 
@@ -108,7 +107,7 @@ public class DingTalkAlarmService implements Alarmable {
         }
         this.agentId = Long.valueOf(agentId);
         dingTalkUtils = new DingTalkUtils(appKey, appSecret);
-        mobile2UserIdCache = CacheBuilder.newBuilder().maximumSize(CACHE_SIZE).build();
+        mobile2UserIdCache = CacheBuilder.newBuilder().maximumSize(CACHE_SIZE).softValues().build();
         log.info("[DingTalkAlarmService] init DingTalkAlarmService successfully!");
     }