<!--定时任务依赖包-->
<dependency>
<groupId>com.times.quartz</groupId>
<artifactId>tms-quartz-commons</artifactId>
<version>1.0</version>
</dependency>
ScheduledUtils定时工具类
public class ScheduledUtils {
private volatile static ScheduledUtils INSTANCE;
public static ScheduledUtils getInstance() {
synchronized (ScheduledUtils.class) {
if (INSTANCE == null) {
synchronized (ScheduledUtils.class) {
INSTANCE = new ScheduledUtils();
}
}
}
return INSTANCE;
}
/**
* @Author JIANGLANG
* @Description 定时任务添加
* @Date 11:17 2023/10/11
* @Param [key, startTime, period, map]
* @return void
**/
public void add(int key, Date startTime, long period, Map<String, Object> map) throws Exception{
System.out.println(key);
System.out.println(startTime);
System.out.println(period);
System.out.println(map);
// 验证是否已经添加
ScheduledUtilsJob job = new ScheduledUtilsJob("user"+key, "user"+key, map);
job.setStartTime(startTime);
job.setIntervalInMillis(period);
TimesJobManager.scheduleJob(job);
}
public void remove(int key) throws Exception{
TimesJobManager.removeJob("user"+key,"user"+key);
}
}
ScheduledUtilsJob执行类.定时时间到重复执行
public class ScheduledUtilsJob extends TimesAbstractSimpleJob {
public ScheduledUtilsJob(){}
public ScheduledUtilsJob(String jobName, String groupName, Map<String, Object> data) {
super(jobName, groupName, data);
}
@Override
protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
try {
System.out.println("--------执行--------------");
Map<String, Object> deviceMap = jobExecutionContext.getJobDetail().getJobDataMap();
System.out.println(deviceMap);
System.out.println("--------执行--------------");
System.out.println("--------执行--------------");
System.out.println("--------执行--------------");
System.out.println("--------执行--------------");
System.out.println("--------执行--------------");
System.out.println("--------执行--------------");
} catch (Exception e) {
e.printStackTrace();
}
}
}
测试方法
public class Main {
public static void main(String[] args) throws Exception {
Map<String, Object> map = new HashMap<>();
//删除
ScheduledUtils.getInstance().remove(12);
// 获取当前时间
Date currentDate = new Date();
// 创建Calendar对象,并将当前时间设置给它
Calendar calendar = Calendar.getInstance();
calendar.setTime(currentDate);
// 将Calendar对象的分钟字段加上5
calendar.add(Calendar.MINUTE, 1);
// 获取加上5分钟后的时间
Date newDate = calendar.getTime();
//放入定时
ScheduledUtils.getInstance().add(12, newDate, 1000, map);
}
}