ScheduledFuture

@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!");
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容