使用ThreadPoolTaskScheduler类实现定时任务的手动执行与取消
1、注入ThreadPoolTaskScheduler类
ThreadPoolTaskScheduler taskScheduler;
2、创建存放任务的Map
public static Map<String, ScheduledFuture<?>> taskMap = new HashMap<>();
3、创建自定义方法执行具体功能
public void sendMsg(String cron) {
ScheduledFuture<?> future = taskScheduler.schedule(
//1.添加任务内容sendTeacherNotice()
() -> sendTeacherNotice(),
//2.设置执行周期Trigger
triggerContext -> new CronTrigger(cron).nextExecutionTime(triggerContext));
taskMap.put("scheduleTaskName", future);
}
4、终止方法
ScheduledFuture<?> future = TeacherNoticeRunner.taskMap.get("scheduleTaskName");
if (future != null) {
//终止任务
future.cancel(true);
}