43 lines
1.0 KiB
Java
43 lines
1.0 KiB
Java
package me.zhyd.oauth.cache;
|
|
|
|
import java.util.concurrent.ScheduledExecutorService;
|
|
import java.util.concurrent.ScheduledThreadPoolExecutor;
|
|
import java.util.concurrent.TimeUnit;
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
|
|
/**
|
|
* 缓存调度器
|
|
*
|
|
* @author yadong.zhang (yadong.zhang0415(a)gmail.com)
|
|
* @since 1.9.3
|
|
*/
|
|
public enum AuthCacheScheduler {
|
|
|
|
/**
|
|
* 当前实例
|
|
*/
|
|
INSTANCE;
|
|
|
|
private AtomicInteger cacheTaskNumber = new AtomicInteger(1);
|
|
private ScheduledExecutorService scheduler;
|
|
|
|
AuthCacheScheduler() {
|
|
create();
|
|
}
|
|
|
|
private void create() {
|
|
this.shutdown();
|
|
this.scheduler = new ScheduledThreadPoolExecutor(10, r -> new Thread(r, String.format("JustAuth-Task-%s", cacheTaskNumber.getAndIncrement())));
|
|
}
|
|
|
|
private void shutdown() {
|
|
if (null != scheduler) {
|
|
this.scheduler.shutdown();
|
|
}
|
|
}
|
|
|
|
public void schedule(Runnable task, long delay) {
|
|
this.scheduler.scheduleAtFixedRate(task, delay, delay, TimeUnit.MILLISECONDS);
|
|
}
|
|
}
|