feat: use softValues to optimize memory usage

This commit is contained in:
tjq 2023-01-24 13:23:34 +08:00
parent 1b1efe6b80
commit 7b56393aee
2 changed files with 15 additions and 12 deletions

View File

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

View File

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