@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!");
}
网友评论