1.数据表自定义的时间(我要11和00分开 )
@SpringBootApplication
@MapperScan("com.test.mapper")
// 开启定时任务
@EnableScheduling
public class TestApplication {//引入自己的mapper层或service层@Resourceprivate SetUpMapper setUpMapper;public static void main(String[] args) {SpringApplication.run(TestApplication.class, args);}//定时任务 @PostConstruct不要丢了@PostConstructpublic void scheduleTasks() {ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(2);//获取时间点 11:00String morning = setUpMapper.selectOneById(5).getParameter().split("-")[1];//定时任务业务//获取小时11,Integer.parseInt(morning.split(":")[0] //获取分钟00,Integer.parseInt(morning.split(":")[1] //定时任务就是,11点00分开启定时任务scheduler.schedule(() -> {//定时任务业务,这是 简单测试,到点打印下班啦System.ou.println("下班啦");}, getTimeUntilNextExecution(Integer.parseInt(morning.split(":")[0]), Integer.parseInt(morning.split(":")[1])), TimeUnit.SECONDS);/*** 计算距离下一个指定时间点的时间间隔(单位:秒)** @param hour* @param minute* @return*/private long getTimeUntilNextExecution(int hour, int minute) {Calendar now = Calendar.getInstance();Calendar nextExecutionTime = Calendar.getInstance();nextExecutionTime.set(Calendar.HOUR_OF_DAY, hour);nextExecutionTime.set(Calendar.MINUTE, minute);nextExecutionTime.set(Calendar.SECOND, 0);if (now.after(nextExecutionTime)) {// 如果当前时间已经过了指定时间点,则推迟到第二天nextExecutionTime.add(Calendar.DAY_OF_MONTH, 1); }return (nextExecutionTime.getTimeInMillis() - now.getTimeInMillis()) / 1000;}}