本篇文章为大家展示了spring quartz定时任务cron时间动态改变的实例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
动态设置quartz定时任务的cron时间有:xml方式与数据库表方式,而且这两种方式在已有的定时任务上需增加大量的代码及数据表,所以在网上找了一种比较简单而且较为实用的方法,但这样的方式不够智能,每次修改定时任务时间后,都需要重新启动服务。若想自由控制项目中的定时任务执行可参考xx-job任务调度项目
动态设置quartz定时任务的cron时间是引用SchedulingConfigurer接口,并需要在实现类中增加注解@EnableScheduling。注:@EnableScheduling对Spring的版本要求比较高,spring版本需要使用4.2.5以上版本,若是低版本则无法生效。
1.先在配置文件中设置定时任务执行时间
#执行时间格式设置 conTestTime:0/20 * * * * ?
2.编写任务执行类
@Component @EnableScheduling public class QuertzJobTask implements SchedulingConfigurer { private static final Logger log = LoggerFactory.getLogger(QuertzJobTask.class); //读取配置文件中设置时间 @Value("${conTestTime}") String indSchedulerJobTime; @Override public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { scheduledTaskRegistrar.addTriggerTask(new Runnable() { @Override public void run() { // 执行任务逻辑 log.info("执行时间 :"+indSchedulerJobTime); } }, new Trigger() { @Override public Date nextExecutionTime(TriggerContext triggerContext) { // 任务触发,可修改任务的执行周期 CronTrigger trigger = new CronTrigger(indSchedulerJobTime); Date nextExec = trigger.nextExecutionTime(triggerContext); return nextExec; } }); } }
任务启动后,可以在控制台上查看到其执行的任务打印出的日志信息
上述内容就是spring quartz定时任务cron时间动态改变的实例分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。