Spring 定时任务插件quartz
博客专区 > Lbj虞 的博客 > 博客详情
Spring 定时任务插件quartz
Lbj虞 发表于10个月前
Spring 定时任务插件quartz
  • 发表于 10个月前
  • 阅读 9
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: quartz

quartz,是java编写的可以和Spring无缝对接的定时任务插件

quartz的核心概念 scheduler 任务调度器 tirgger 触发器用于调度任务的时间规则 , job 任务,被调度的任务,我通常跑的业务逻辑代码

一个任务调度器的执行必须要包含 tirgger 触发器和job 任务

1.使用注解的方式 项目中使用quartz可以通过配置quartz.xml方式,采用@Scheduled注解的方式

@Scheduled 作用在方法上,方法不能有返回值,方法所在的类必须是SpringBean 可以在类上添加@Componet注解

quartz.xml 中配置 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p" xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.0.xsd">

<!--开启这个配置,spring才能识别@Scheduled注解-->  
 <task:annotation-driven/>  
 <!-- 自动扫描注解的bean -->  
<context:component-scan base-package="com.yu"/>  

</beans> 效果如下

2.使用自己手动配置xml的方式,写好一个定时任务,往配置文件,添加任务信息

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
<bean id="quartzJob" class="com.yu.quartz.QuartzTest"></bean>

 <!-- 定义调用对象和调用对象的方法 -->  
<bean id="jobtask"  
    class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  
    <!-- 调用的类 -->  
    <property name="targetObject">  
        <ref bean="quartzJob" />  
    </property>  
    <!-- 调用类中的方法 -->  
    <property name="targetMethod">  
        <value>qTest</value>  
    </property>  
    <!-- 是否并发执行-->   
      <property name="concurrent" value="false"/>
</bean>  


  <!-- 定义触发时间 -->  
<bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">  
    <property name="jobDetail" ref="jobtask"></property>  
    <!-- cron表达式 -->  
    <property name="cronExpression">  
        <value>0/5 * * * * ?</value>  
    </property>  
</bean>  

<!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
<bean id="startQuertz" lazy-init="false" autowire="no"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<!-- 触发器列表 -->
<ref bean="doTime" />
</list>
</property>
</bean>

</beans>

3.任务信息初始化持久化到数据里面,可以对任务的执行进行监控

标签: Quartz
共有 人打赏支持
粉丝 3
博文 29
码字总数 20080
×
Lbj虞
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: