优化缓存初始加载
This commit is contained in:
parent
6ab8921e25
commit
95d5934a96
@ -120,7 +120,7 @@ public class IPCPlcDataSyncThread implements Runnable {
|
||||
String format = simpleDateFormat.format(new Date());
|
||||
fields.put("insertTime", format);
|
||||
// 根据运行状态获取规则
|
||||
List<IpcAlarmRulesConfig> rulesConfigList = iIpcAlarmRulesConfigService.selectIpcAlarmRulesConfigList(tags.get("part"));
|
||||
List<IpcAlarmRulesConfig> rulesConfigList = iIpcAlarmRulesConfigService.selectIpcAlarmRulesConfigListByCache(tags.get("part"));
|
||||
if (IpcConstant.RUNNING_STATUS_RUNNING.equals(status)) {
|
||||
rulesConfigList = rulesConfigList.stream().filter(ipcAlarmRulesConfig -> ipcAlarmRulesConfig.getType().equals(IpcConstant.RULE_TYPE_IN_RUNNING)).collect(Collectors.toList());
|
||||
} else {
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.inspur.ipc.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.inspur.ipc.domain.IpcAlarmRulesConfig;
|
||||
|
||||
/**
|
||||
@ -9,8 +10,7 @@ import com.inspur.ipc.domain.IpcAlarmRulesConfig;
|
||||
* @author inspur
|
||||
* @date 2024-03-30
|
||||
*/
|
||||
public interface IIpcAlarmRulesConfigService
|
||||
{
|
||||
public interface IIpcAlarmRulesConfigService {
|
||||
/**
|
||||
* 查询告警规则配置
|
||||
*
|
||||
@ -58,11 +58,17 @@ public interface IIpcAlarmRulesConfigService
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteIpcAlarmRulesConfigById(Long id);
|
||||
|
||||
/**
|
||||
* 更新 redis 缓存
|
||||
*/
|
||||
void updateRedisCache();
|
||||
|
||||
/**
|
||||
* 获取告警规则缓存
|
||||
*
|
||||
* @param part 监测部位
|
||||
* @return 告警规则配置集合
|
||||
*/
|
||||
public List<IpcAlarmRulesConfig> selectIpcAlarmRulesConfigList(String part);
|
||||
public List<IpcAlarmRulesConfig> selectIpcAlarmRulesConfigListByCache(String part);
|
||||
}
|
||||
|
@ -100,6 +100,7 @@ public class IpcAlarmRulesConfigServiceImpl implements IIpcAlarmRulesConfigServi
|
||||
/**
|
||||
* 更新 redis 缓存
|
||||
*/
|
||||
@Override
|
||||
public void updateRedisCache() {
|
||||
// 获取监测部位
|
||||
List<IpcMonitorField> partList = iIpcMonitorFieldService.selectFieldDataByType(CacheConstants.MONITOR_PART_KEY);
|
||||
@ -117,7 +118,7 @@ public class IpcAlarmRulesConfigServiceImpl implements IIpcAlarmRulesConfigServi
|
||||
* @return 告警规则配置集合
|
||||
*/
|
||||
@Override
|
||||
public List<IpcAlarmRulesConfig> selectIpcAlarmRulesConfigList(String part) {
|
||||
public List<IpcAlarmRulesConfig> selectIpcAlarmRulesConfigListByCache(String part) {
|
||||
List<IpcAlarmRulesConfig> list = redisCache.getCacheObject(CacheConstants.IPC_PREFIX+CacheConstants.RULE_CONFIG + part);
|
||||
if (list == null || list.isEmpty()) {
|
||||
this.updateRedisCache();
|
||||
|
@ -0,0 +1,35 @@
|
||||
package com.inspur.ipc.utils;
|
||||
|
||||
import com.inspur.common.constant.CacheConstants;
|
||||
import com.inspur.common.utils.spring.SpringUtils;
|
||||
import com.inspur.ipc.service.IIpcAlarmRecordService;
|
||||
import com.inspur.ipc.service.IIpcAlarmRulesConfigService;
|
||||
import com.inspur.ipc.service.IIpcMonitorFieldService;
|
||||
import com.inspur.ipc.service.IIpcRunningStatusRecordService;
|
||||
import com.inspur.system.service.influx.InfluxDBService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
|
||||
@Configuration
|
||||
public class IpcRedisCacheConfiguration {
|
||||
@Autowired
|
||||
IIpcMonitorFieldService iIpcMonitorFieldService;
|
||||
@Autowired
|
||||
IIpcAlarmRulesConfigService iIpcAlarmRulesConfigService;
|
||||
@Autowired
|
||||
IIpcRunningStatusRecordService iIpcRunningStatusRecordService;
|
||||
|
||||
/**
|
||||
* 预加载缓存
|
||||
*/
|
||||
@PostConstruct
|
||||
public void preloadedRedisCache(){
|
||||
iIpcMonitorFieldService.selectFieldDataByType(CacheConstants.MONITOR_PART_KEY);
|
||||
iIpcMonitorFieldService.selectFieldDataByType(CacheConstants.SENSOR_MONITOR_PARAMS_KEY);
|
||||
iIpcMonitorFieldService.selectFieldDataByType(CacheConstants.PLC_MONITOR_PARAMS_KEY);
|
||||
iIpcAlarmRulesConfigService.updateRedisCache();
|
||||
iIpcRunningStatusRecordService.selectLatestStatus();
|
||||
}
|
||||
}
|
@ -51,7 +51,7 @@ public class RuleUtils {
|
||||
public List<IpcAlarmRecord> plcDataDeal(Map<String, Object> map, String tag, String type, List<IpcMonitorField> paramList) {
|
||||
List<IpcAlarmRecord> returnList = new ArrayList<>();
|
||||
// 获取判断规则
|
||||
List<IpcAlarmRulesConfig> rulesConfigList = iIpcAlarmRulesConfigService.selectIpcAlarmRulesConfigList(tag);
|
||||
List<IpcAlarmRulesConfig> rulesConfigList = iIpcAlarmRulesConfigService.selectIpcAlarmRulesConfigListByCache(tag);
|
||||
try {
|
||||
// 创建ScriptEngineManager和ScriptEngine实例
|
||||
ScriptEngineManager manager = new ScriptEngineManager();
|
||||
@ -95,7 +95,7 @@ public class RuleUtils {
|
||||
public List<IpcAlarmRecord> sensorDataDeal(Map<String, Object> map, String tag, String type, List<IpcMonitorField> paramList) {
|
||||
List<IpcAlarmRecord> returnList = new ArrayList<>();
|
||||
// 获取判断规则
|
||||
List<IpcAlarmRulesConfig> rulesConfigList = iIpcAlarmRulesConfigService.selectIpcAlarmRulesConfigList(tag);
|
||||
List<IpcAlarmRulesConfig> rulesConfigList = iIpcAlarmRulesConfigService.selectIpcAlarmRulesConfigListByCache(tag);
|
||||
try {
|
||||
// 创建ScriptEngineManager和ScriptEngine实例
|
||||
ScriptEngineManager manager = new ScriptEngineManager();
|
||||
|
Loading…
Reference in New Issue
Block a user