Java服务_xml配置实现Quartz执行jar包方法
1.Quartz与ScheduledExecutorService的区别
Quartz和ScheduledExecutorService都可以用来执行定时轮询任务,但是Quartz的功能更加强大一些:
- Quartz提供了很多任务监控和维护工具,如Job Persistence,Transactions,Clustering等;
- Quartz使用cron表达式来设置任务执行时间和频率,更加灵活。
2.xml配置轮询jar包方法实例
2.1任务方法打成jar包
将如下类package打成jar包,插入定时任务springboot项目中add as library:
1 | package jia.zheng.jop; |
2.2引入Quartz依赖
在定时任务springboot项目的pom.xml文件中引入Quartz依赖,如果是spring项目则要添加版本号:
1 | <dependency> |
2.3创建定时任务xml配置文件
创建spring-quartz-config.xml文件如下:
1 | <?xml version="1.0" encoding="UTF-8"?> |
- 作为targetObject属性的bean可以是本项目的类也可以是依赖jar包中的类。本质就是将类加载到spring容器中,然后对该单例bean中的任务方法进行动态代理。
- 配置文件中任务、触发器、总管理类三者缺一不可,总管理类只需要一个,任务和触发器可以配置多个。⼀个触发器只能配置⼀个任务,⼀个任务可以被多个触发器配置。
2.4导入配置文件
在Application类中添加@ImportResource注解:
1 |
|
2.5执行结果
项目启动时,控制台显示定时任务执行器成功初始化:
1 | . ____ _ __ _ _ |
配置的定时任务成功执行:
1 | 2022-06-13 16:37:53.923 INFO 16716 --- [ main] org.quartz.core.QuartzScheduler : Scheduler startQuertz_$_NON_CLUSTERED started. |