지대한
6 months ago
7 changed files with 38 additions and 121 deletions
@ -1,54 +0,0 @@
|
||||
package kr.co.palnet.kac.socket.core.storage; |
||||
|
||||
import kr.co.palnet.kac.common.model.common.DroneDto; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.scheduling.annotation.Scheduled; |
||||
|
||||
import java.time.Instant; |
||||
import java.util.Map; |
||||
import java.util.concurrent.ConcurrentHashMap; |
||||
|
||||
@Slf4j |
||||
public class DroneCacheStorage { |
||||
|
||||
private final Map<String, DroneDto> controlMap; |
||||
|
||||
private final int REMOVE_TIME = 1000 * 10; |
||||
|
||||
private DroneCacheStorage() { |
||||
controlMap = new ConcurrentHashMap<>(); |
||||
} |
||||
|
||||
public static DroneCacheStorage getInstance() { |
||||
return LazyHolder.INSTANCE; |
||||
} |
||||
|
||||
public static class LazyHolder { |
||||
private static final DroneCacheStorage INSTANCE = new DroneCacheStorage(); |
||||
} |
||||
|
||||
public DroneDto get(String objectId) { |
||||
return controlMap.get(objectId); |
||||
} |
||||
|
||||
public DroneDto put(String objectId, DroneDto control) { |
||||
return controlMap.put(objectId, control); |
||||
} |
||||
|
||||
public DroneDto remove(String objectId) { |
||||
return controlMap.remove(objectId); |
||||
} |
||||
|
||||
// TODO scheduler 테스트 필요(현재 Bean등록 안함)
|
||||
@Scheduled(fixedDelay = 1000 * 10) |
||||
public void remove() { |
||||
for (String key : controlMap.keySet()) { |
||||
DroneDto droneCacheDTO = controlMap.get(key); |
||||
long diff = Instant.now().toEpochMilli() - droneCacheDTO.getRegDt().toEpochMilli(); |
||||
if(diff > REMOVE_TIME){ |
||||
remove(key); |
||||
} |
||||
} |
||||
} |
||||
|
||||
} |
Loading…
Reference in new issue