/**
* 日活跃定时任务
*/
@RequestMapping(value="/test1",method = RequestMethod.GET)
public void userActiveCount() throws InterruptedException, ParseException {
// Set<Object> set = redisTemplate.opsForSet().members(RedisKeyConstants.USER_LOGIN_REDIS_KEY);
Date startDate = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
try {
// startDate.setTime(startDate.getTime() + 7000);
Date date = dateFormat.parse("2021-08-23 16-14-01");
startDate = date;
Date date2 = dateFormat.parse("2021-08-23 16-23-10");
Date endDate = new Date();
endDate.setTime(date2.getTime());
//从定时器工厂中获取一个定时器对象
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
//获取JobDetail实例
JobDetail jobDetail = JobBuilder.newJob(test1.class).build();
//获取触发器
// //第一种 SimpleTrigger 触发器
// CronTrigger trigger = TriggerBuilder.newTrigger()
// .startNow()//立即生效
// .startAt(startDate)
// .endAt(endDate)
// .withSchedule(
// SimpleScheduleBuilder.simpleSchedule()
// .withIntervalInSeconds(2) //每隔2秒执行一次
// .repeatForever()
// )
// .withSchedule(CronScheduleBuilder.cronSchedule("0/5 13 15 ? * *"))
// .build();//一直执行
// //第二种 CronTrigger触发器 (使用最多)
SimpleTrigger trigger = TriggerBuilder.newTrigger()
.startAt(startDate)
.endAt(endDate)
.startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(60) //每隔60秒钟重复执行
.repeatForever()
).build();
//将JobDetail和Trigger绑定 执行
scheduler.scheduleJob(jobDetail,trigger);
System.out.println("-----------Scheduler start---------");
log.info("start = " +new Date());
scheduler.start();
//睡眠
// TimeUnit.SECONDS.sleep(7L);
// scheduler.shutdown();
System.out.println("!!!!!!!!!!!!!Scheduler shutdown!!!!!!!!!!!!!!");
} catch (SchedulerException e) {
e.printStackTrace();
}
}