十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本篇文章为大家展示了spring quartz定时任务cron时间动态改变的实例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
创新互联长期为上1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为兰山企业提供专业的做网站、网站设计,兰山网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。
动态设置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时间动态改变的实例分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。