지대한
2 years ago
5 changed files with 238 additions and 156 deletions
@ -0,0 +1,12 @@
|
||||
package com.palnet.comn.model; |
||||
|
||||
import lombok.Data; |
||||
|
||||
@Data |
||||
public class ControlCacheModel { |
||||
private String controlId; |
||||
private String typeCd; |
||||
private String areaTrnsYn; |
||||
private boolean controlWarnCd; |
||||
private Long regTime; |
||||
} |
@ -0,0 +1,43 @@
|
||||
package com.palnet.comn.utils; |
||||
|
||||
import com.palnet.comn.model.ControlCacheModel; |
||||
import org.slf4j.Logger; |
||||
import org.slf4j.LoggerFactory; |
||||
import org.springframework.scheduling.annotation.Scheduled; |
||||
import org.springframework.stereotype.Component; |
||||
|
||||
import javax.naming.ldap.Control; |
||||
import java.util.HashMap; |
||||
import java.util.Map; |
||||
|
||||
@Component |
||||
public class ControlCacheUtils { |
||||
private Logger logger = LoggerFactory.getLogger(getClass()); |
||||
private static Map<String, ControlCacheModel> controls = new HashMap<>(); |
||||
private Integer removeTime = 1000 * 10; // 10초
|
||||
|
||||
public static void setControl(String objectId, ControlCacheModel control) { |
||||
controls.put(objectId, control); |
||||
} |
||||
|
||||
public static void removeControl(String objectId) { |
||||
controls.remove(objectId); |
||||
} |
||||
|
||||
public static ControlCacheModel getControl(String objectId) { |
||||
return controls.get(objectId); |
||||
} |
||||
|
||||
// 일정 시간마다 오랜된 데이터 삭제
|
||||
@Scheduled(fixedDelay = 1000 * 10) |
||||
public void remove() { |
||||
logger.info("controls keys : {}",controls.keySet().size()); |
||||
for (String key : controls.keySet()) { |
||||
ControlCacheModel model = controls.get(key); |
||||
Long diff = System.currentTimeMillis() - model.getRegTime(); |
||||
if(diff > (1000 * 10)){ |
||||
removeControl(key); |
||||
} |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue