Quartz

什么是Quartz

一种任务日程管理系统,用来运行复杂日程表
功能类似定时器

Quartz做了什么

在提前设置好的日期或时间间隔到达时开始、暂停或停止执行对应的任务

为什么要用Quartz

  • 可用于活动倒计时
  • 使用场景:单独使用 或 web项目中使用

Quartz实现原理

四个核心接口:核心调度器scheduler任务job任务描述jobDetail触发器trigger

  1. 定义job(相当于接口)和jobDetail(相当于实现类)
  2. 定义任务对应的触发器trigger
  3. 将三者注册到核心调度器scheduler中
  4. 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>
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值