cachefreshtask.java

来自「定制缓存的生命周期」· Java 代码 · 共 30 行

JAVA
30
字号
package zhouyouguo.slack;

import java.util.*;
import java.util.Map.Entry;

class CacheFreshTask extends TimerTask {
    private DefaultCache cache;
    public CacheFreshTask(DefaultCache cache) {
        this.cache = cache;
    }

    public void run() {
        synchronized (cache.datas) {
            Iterator iterator = cache.datas.entrySet().iterator();
            if(iterator!=null){
		        while (iterator.hasNext()) {
		        	Map.Entry entry = (Entry) iterator.next();
		            SimpleCacheInfo sci = (SimpleCacheInfo) entry.getValue();
		            if (sci.getSecondsTotal() != ICacheInterface.Forever) {
		            	System.out.println(sci.getObj().toString());
		                sci.setSecondsRemain(sci.getSecondsRemain() - DefaultCache.FreshTimerIntervalSeconds);
		                if (sci.getSecondsRemain() <= 0) {
		                    iterator.remove();
		                }
		            }
		        }
            }
        }
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?