ScheduledFuture

2022-08-07  本文已影响0人  chrisghb
@Resource
private ThreadPoolTaskScheduler threadPoolTaskScheduler;

// ScheduledFuture和Future相比,有delay功能
ScheduledFuture<?> future = threadPoolTaskScheduler.scheduleWithFixedDelay(new Runnable() {
    @Override
    public void run() {
        ...
    }
}, delay);

ConcurrentHashMap<String, ScheduledFuture<?>> planPool = PlanStatus.getPlanPool();
planPool.put(taskId, future);

//移除计划的开始线程
ScheduledFuture<?> removedPlanFuture = planPool.remove(taskId);
if (removedPlanFuture != null) {
    removedPlanFuture.cancel(true);
    logger.info("removePlan success, taskId :"+taskId+", future isDone :"+removedPlanFuture.isDone());
} else {
    logger.info("removePlan failed, taskId =["+taskId+"] cannot find from the cache!");
}
上一篇 下一篇

猜你喜欢

热点阅读