Quartz
程序员文章站
2024-02-27 13:53:51
...
什么是Quartz
一种任务日程管理系统,用来运行复杂日程表
功能类似定时器
Quartz做了什么
在提前设置好的日期或时间间隔到达时开始、暂停或停止执行对应的任务
为什么要用Quartz
- 可用于活动倒计时
- 使用场景:单独使用 或 web项目中使用
Quartz实现原理
四个核心接口:核心调度器scheduler
,任务job
,任务描述jobDetail
,触发器trigger
- 定义job(相当于接口)和jobDetail(相当于实现类)
- 定义任务对应的触发器trigger
- 将三者注册到核心调度器scheduler中
- scheduler根据trigger来执行job
Quartz在maven项目中的使用
-
添加相关依赖:
<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.2</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.1.3.RELEASE</version> </dependency>
-
创建一个类作为job的实现方法
-
配置job到spring容器:
<bean id="自定义job的id" class="类的全路径"></bean>
-
给job配置JobDetail:
<bean id="自定义JobDetail的id" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <!--指定该jobdetail描述的job--> <property name="targetObject"> <ref bean="自定义job的id" /> </property> <!-- 指定需要执行的job中的方法 --> <property name="targetMethod"> <value>要执行的方法名称</value> </property> </bean>
-
配置调度触发器:
<!-- 配置调度触发器 --> <bean id="自定义触发器的id" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean "> <property name="jobDetail" ref="自定义JobDetail的id"></property> <!-- 每2秒钟执行以下execute这个方法0/2这是一个表达式 --> <property name="cronExpression" value="配置触发时机的表达式"></property> </bean>
-
配置调度工厂:
<!-- 配置调度工厂,一个项目中有多个定时器 --> <bean id="SpringJobSchedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="自定义触发器的id" /> </list> </property> </bean>
下一篇: java回调机制实例详解
推荐阅读
-
Quartz
-
SpringBoot与Quartz集成实现分布式定时任务集群的代码实例
-
spring quartz定时任务 quartzSpringJavaXML
-
spring quartz定时任务 quartzSpringJavaXML
-
springboot Quartz动态修改cron表达式的方法
-
Springboot整个Quartz实现动态定时任务的示例代码
-
springboot整合Quartz实现动态配置定时任务的方法
-
Quartz 在Spring中的配置 博客分类: Quartz quartzschedulingspringframework
-
浅谈SpringBoot集成Quartz动态定时任务
-
Quartz自定义trigger触发器