• 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" />
  • 相关阅读:
    基本数据类型(int, bool, str)
    循环 运算符 格式化输出 编码
    认识python 变量 数据类型 条件if语句
    简述bug的生命周期?
    性能测试的流程?
    主键、外键的作用,索引的优点与不足?
    需求测试的注意事项有哪些?
    对某软件进行测试,发现在WIN98上运行得很慢,怎么判别是该软件存在问题还是其软硬件运行环境存在问题?
    什么是兼容性测试?请举例说明如何利用兼容性测试列表进行测试。
    如何定位测试用例的作用?
  • 原文地址:https://www.cnblogs.com/miye/p/9467921.html
Copyright © 2020-2023  润新知