java 动态读取数据库执行定时任务
System.out.println("开始执行业务:" + LocalDateTime.now());//2.3 返回执行周期(Date)//2.1 从数据库获取执行周期。//2.2 合法性校验.//1.添加任务内容。//2.设置执行周期。
·
import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.SchedulingConfigurer; import org.springframework.scheduling.config.ScheduledTaskRegistrar; import org.springframework.scheduling.support.CronTrigger; import org.springframework.stereotype.Component; import org.springframework.util.StopWatch; import java.time.LocalDateTime; @Component @EnableScheduling @Configuration public class TestScheduled implements SchedulingConfigurer { @Autowired private MapperDao mapperDao; @Override public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { scheduledTaskRegistrar.addTriggerTask( //1.添加任务内容 this::scheduleTask, //2.设置执行周期 triggerContext -> { //2.1 从数据库获取执行周期 CronInfo cronInfo= mapperDao.findById(20); String cron = cronInfo.getCron(); //2.2 合法性校验. if (StringUtils.isEmpty(cron)) { System.out.println("null"); } //2.3 返回执行周期(Date) return new CronTrigger(cron).nextExecutionTime(triggerContext); } ); } public void scheduleTask() { StopWatch stopWatch = new StopWatch(); stopWatch.start(); System.out.println("开始执行业务:" + LocalDateTime.now()); for (int i = 0; i < 10; i++) { System.out.println("==>" + i); } stopWatch.stop(); System.out.println(stopWatch.getTotalTimeSeconds()); } }

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)