zoukankan      html  css  js  c++  java
  • Spring Quartz

    1 引入spiring和quartz相关jar包

      <!-- quartz 的jar -->
        <dependency>
             <groupId>org.quartz-scheduler</groupId>
             <artifactId>quartz</artifactId>
             <version>2.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz-jobs</artifactId>
            <version>2.2.1</version>
        </dependency>

    2 编写任务类

    ..略...

    3配置文件

        <!-- 定时任务开关控制器 -->
        <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false">  
           <property name="triggers">  
               <list>  
                  <ref bean="TriggerFirst" />
                  <ref bean="TriggerTwo" />
               </list>  
           </property>  
        </bean>  
        
        
        <!-- 执行定时任务时间 -->
        <bean id="TriggerFirst" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">  
           <property name="jobDetail" ref="triggerFirstDetail"/>  
           <property name="cronExpression" value="0 15 10 ? * *"/> <!--"0 15 10 ? * *" 每天早上10:15触发 "30 * * * * ?" --> 
        </bean>  
        
         <!--此方式合适仅仅需要调用特定类对象的某个方法。通过SimpleTriggerFactoryBean创建job(顾名思义,JobDetail的bean工厂的方法反射类,FactoryBean<JobDetail>的实现类),由它的对象调用我们要执行的类的方法 -->
        <bean id="triggerFirstDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">   
            <property name="targetObject" ref="JobFirst"/>  >    <!-- 具体要执行的类 -->
            <property name="targetMethod" value="jobFirstMethod"/>  <!-- 具体要执行的方法 -->
            <!-- 是否允许任务并发执行。当值为false时,表示必须等到前一个线程处理完毕后才再启一个新的线程 -->  
            <property name="concurrent" value="false"/>
        </bean> 
        
        <!-- 注入bean -->                         
        <bean id="JobFirst" class="com.cn.JobFirst" />
    
        
        
        
        <!-- 执行定时任务时间 -->
        <bean id="TriggerTwo" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">  
           <property name="jobDetail" ref="triggerTwoDetail"/>  
           <property name="cronExpression" value="0 15 10 ? * FRI"/>  <!-- 每个周五10:15 AM触发一次 -->
        </bean>  
    
        <bean id="triggerTwoDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">   
            <property name="targetObject" ref="JobTwo"/>  <!-- 具体要执行的类 -->
            <property name="targetMethod" value="JobTwoMethod"/>  <!-- 具体要执行的方法 -->
            <!-- 是否允许任务并发执行。当值为false时,表示必须等到前一个线程处理完毕后才再启一个新的线程 -->  
            <property name="concurrent" value="false"/>
        </bean> 
        
        <!-- 注入bean -->
        <bean id="JobTwo" class="com.cn.JobTwo" />
  • 相关阅读:
    php 网络图片转base64
    uniapp微信小程序拒绝授权后,重新调起授权页
    uniapp获取用户信息 getuserinfo
    基于JSP和Mybatis框架技术的应用总结
    Java第16周作业集
    Java第15周作业集
    Java第14周作业集
    Java第13周作业集
    软件工程结课作业
    Java第13次作业--邮箱的正则表达式
  • 原文地址:https://www.cnblogs.com/miye/p/9467921.html
Copyright © 2011-2022 走看看