package com.springboot.demo.controller;
import com.springboot.demo.entity.Menu;
import com.springboot.demo.mapper.MenuMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
import org.springframework.scheduling.support.CronTrigger;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* 动态定时器 ,表达式网址 http://cron.qqe2.com/
*/
@Component
public class DynamicScheduledTask implements SchedulingConfigurer {
@Autowired
private MenuMapper menuMapper;
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
taskRegistrar.addTriggerTask(() -> {
// 定时任务的业务逻辑
aa();
}, triggerContext -> {//设置下次定时器
Map<String, Object> map = new HashMap<>();
map.put("id", 9);
Menu menu = menuMapper.findSingle(map);
// String cron = "0 " + minute + " " + hour + " * * " + day + "";
String cron = "0/" + menu.getPid() + " * * * * ? "; // menu.getPid()秒执行1次
System.out.println(cron);
CronTrigger trigger = new CronTrigger(cron); // 定时任务触发,可修改定时任务的执行周期
Date nextExecDate = trigger.nextExecutionTime(triggerContext);
return nextExecDate;
});
}
/**
* desc:
* param:
* author: CDN
* date: 2019/10/19
*/
public void aa() {
System.out.println("提醒打卡");
}
}