ScheduledFuture

@Resource
private ThreadPoolTaskScheduler threadPoolTaskScheduler;

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

ConcurrentHashMap> 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!");
}

你可能感兴趣的:(ScheduledFuture)