- 需求
前端点击一个按钮,新增并启用一个定时任务,同时还有停用按钮,用于暂停该定时任务。 - 后台实现
- 在启动类中(springboot项目)增加如下代码:
//支持秒级别定时任务
CronUtil.setMatchSecond(true);
//定时服务启动
CronUtil.start();
//使用deamon模式
//CronUtil.start(true);
- 按钮触发后后台执行逻辑
public String executeTask(String cronString) {
//动态新增定时任务,因为项目启动时已启动定时服务,所以新增后cron条件触发即执行
String jobId = CronUtil.schedule(cronString, new Task() {
@Override
public void execute() {
System.out.println("定时任务执行");
}
});
if (!StringUtils.isEmpty(jobId)) {
return jobId;
} else {
return null;
}
}
- 停用对应的定时任务
public static void remove(String jobId){
log.info("定时任务["+jobId+"]停止...");
CronUtil.remove(jobId);
}
- 关闭定时服务
CronUtil.stop();