private static final ConcurrentHashMap CACHE_MAP;
private static final int DEFAULT_CAPACITY = 1024;
public static String CACHE_KEY = "DAY_LEARN_COUNT_";
private static final ScheduledExecutorService SCHEDULER;
private static final ThreadFactory THREAD_FACTORY = new CustomizableThreadFactory("thread-cache-util");
CACHE_MAP = new ConcurrentHashMap<>(DEFAULT_CAPACITY);
SCHEDULER = new ScheduledThreadPoolExecutor(corePoolSize, THREAD_FACTORY);
String format = DateUtil.format(new Date(), "yyyy_MM_dd");
CACHE_KEY = CACHE_KEY + format;
public static AtomicInteger getValue() {
return CACHE_MAP.get(CACHE_KEY);
public static void putVal(AtomicInteger value, int times) {
CACHE_MAP.put(CACHE_KEY, value);
public static void remove() {
log.info("remove:{}", CACHE_KEY);
CACHE_MAP.remove(CACHE_KEY);
public static void setScheduled(int times) {
SCHEDULER.scheduleAtFixedRate(new ClearTask(),
times, times, TimeUnit.SECONDS);
static class ClearTask extends TimerTask {
