|
|
|
package com.zhonglai.luhui.device.protocol.factory.config;
|
|
|
|
|
|
|
|
import com.zhonglai.luhui.device.analysis.comm.dao.BaseDao;
|
|
|
|
import com.zhonglai.luhui.device.protocol.factory.dto.ParserDeviceHostDto;
|
|
|
|
import com.zhonglai.luhui.device.protocol.factory.dto.ParserDeviceInfoDto;
|
|
|
|
import com.zhonglai.luhui.device.protocol.factory.service.impl.DefaultDbService;
|
|
|
|
import net.jodah.expiringmap.ExpirationListener;
|
|
|
|
import net.jodah.expiringmap.ExpirationPolicy;
|
|
|
|
import net.jodah.expiringmap.ExpiringMap;
|
|
...
|
...
|
@@ -24,21 +26,17 @@ public class DeviceCach { |
|
|
|
// 清零过期时间也就是重置过期时间,重新计算过期时间.
|
|
|
|
private static ExpiringMap<String, ParserDeviceInfoDto> parserDeviceInfoDtoMap = ExpiringMap.builder().maxSize(20000).expiration(60, TimeUnit.SECONDS)
|
|
|
|
.variableExpiration()
|
|
|
|
.asyncExpirationListener(new ExpirationListener<String, ParserDeviceInfoDto>() {
|
|
|
|
@Override
|
|
|
|
public void expired(String s, ParserDeviceInfoDto parserDeviceInfoDto) {
|
|
|
|
log.info("超时清除>>>>>>>:{} ",s);
|
|
|
|
}
|
|
|
|
.asyncExpirationListener((ExpirationListener<String, ParserDeviceInfoDto>) (s, parserDeviceInfoDto) -> {
|
|
|
|
log.info("超时清除>>>>>>>:{} ",s);
|
|
|
|
DefaultDbService.baseDao.updateBySql("update iot_terminal set online=4 where id='"+s+"'");
|
|
|
|
})
|
|
|
|
.expirationPolicy(ExpirationPolicy.ACCESSED).build();
|
|
|
|
|
|
|
|
private static ExpiringMap<String, ParserDeviceHostDto> parserDeviceHostDtoMap = ExpiringMap.builder().maxSize(20000).expiration(60, TimeUnit.SECONDS)
|
|
|
|
.variableExpiration()
|
|
|
|
.asyncExpirationListener(new ExpirationListener<String, ParserDeviceHostDto>() {
|
|
|
|
@Override
|
|
|
|
public void expired(String s, ParserDeviceHostDto parserDeviceHostDto) {
|
|
|
|
log.info("超时清除>>>>>>>:{} ",s);
|
|
|
|
}
|
|
|
|
.asyncExpirationListener((ExpirationListener<String, ParserDeviceHostDto>) (s, parserDeviceHostDto) -> {
|
|
|
|
log.info("超时清除>>>>>>>:{} ",s);
|
|
|
|
DefaultDbService.baseDao.updateBySql("update iot_device set status=4 where client_id='"+s+"'");
|
|
|
|
})
|
|
|
|
.expirationPolicy(ExpirationPolicy.ACCESSED).build();
|
|
|
|
|
|
...
|
...
|
@@ -48,7 +46,7 @@ public class DeviceCach { |
|
|
|
{
|
|
|
|
parserDeviceInfoDtoMap.put(parserDeviceInfoDto.getId(),parserDeviceInfoDto);
|
|
|
|
}else{
|
|
|
|
parserDeviceInfoDtoMap.put(parserDeviceInfoDto.getId(),parserDeviceInfoDto,device_life*3,TimeUnit.SECONDS);
|
|
|
|
parserDeviceInfoDtoMap.put(parserDeviceInfoDto.getId(),parserDeviceInfoDto,device_life+15,TimeUnit.SECONDS);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
...
|
...
|
@@ -58,7 +56,7 @@ public class DeviceCach { |
|
|
|
{
|
|
|
|
parserDeviceHostDtoMap.put(parserDeviceHostDto.getId(),parserDeviceHostDto);
|
|
|
|
}else {
|
|
|
|
parserDeviceHostDtoMap.put(parserDeviceHostDto.getId(),parserDeviceHostDto,device_life*3,TimeUnit.SECONDS);
|
|
|
|
parserDeviceHostDtoMap.put(parserDeviceHostDto.getId(),parserDeviceHostDto,device_life+15,TimeUnit.SECONDS);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
public static void cleanDeviceHost(String deviceId)
|
...
|
...
|
|