springboot @EnableScheduling 定时任务

it2022-05-09  38

相应类上添加注解@EnableScheduling或者正在启动类上使用 需要执行定时任务的方法上添加@Scheduled注解了,前提条件是该方法不能有参数;

测试方法

@Scheduled(cron = "0/5 * * * * ?") public void test(){ System.out.println("hhhhh"); }

通过数据库查询cron表达式 数据库数据为 “0/5 * * * * ?”

@Configuration public class comlexJob implements SchedulingConfigurer { @Mapper public interface CronMapper{ @Select("select crom from qz limit 1") String getCron() ; } @Resource private CronMapper cronMapper; //任务、触发器 @Override public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { //lambda写法 scheduledTaskRegistrar.addTriggerTask( () -> System.out.println(LocalDateTime.now()), triggerContext ->{ String cron = cronMapper.getCron(); return new CronTrigger(cron).nextExecutionTime(triggerContext); } ); // 常规写法 // scheduledTaskRegistrar.addTriggerTask(new Runnable() { // @Override // public void run() { // //任务 // } // },new Trigger(){ // // @Override // public Date nextExecutionTime(TriggerContext triggerContext) { // return null; // } // }); } }

最新回复(0)