2017-02-01 13 views

답변

0

당신은 만료되지해야 할 항목을-넣어 다시 예약 된 작업으로 expireAfterWrite를 사용할 수 있습니다

Cache<String, MyClass> cache = CacheBuilder.newBuilder() 
     .expireAfterAccess(16L, TimeUnit.MINUTES) 
     .expireAfterWrite(16L, TimeUnit.MINUTES) 
     .build(); 

ScheduledExecutorService exitingScheduledExecutorService = MoreExecutors 
     .getExitingScheduledExecutorService(new ScheduledThreadPoolExecutor(1)); 
Runnable command =() -> cache.putAll(Maps.filterValues(cache.asMap(), myClass -> 
     !myClass.canExpire))); 
exitingScheduledExecutorService.scheduleWithFixedDelay(command, 0, 15L, TimeUnit.MINUTES);