zoukankan      html  css  js  c++  java
  • 一看便知spring+quartz定时任务

    这是我经过网上收集然后加上自己的测试写的,以便大家使用

    标配:已测
    注意需要的包:(在已经配置spring 的情况下)
    quartz-all-1.6.jar        spring-context-support-4.0.0.jar       
    applicationContext.xml配置文件
    <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序  
    当 IoC容器启动时,lazy-init="true"的bean,IoC容器启动时不会实例化该bean,只有当容器需要用到时才实例化它。lazy-init有利于容器效率,对于不需要的bean可以先不管。-->
        <bean id="testStartQuertz" lazy-init="false"
                   class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
              <property name="triggers">
                  <list>
                    <ref bean="testDoTime"/>
                    <ref bean="test111"/>
                  </list>
              </property>
        </bean>
        
         <!--  每隔5秒调用work方法 -->
        <bean id="testDoTime" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
              <property name="jobDetail" ref="testTask"/>
              <property name="cronExpression" value="0/5 * * * * ?"/>  <!--  cron表达式 -->
        </bean>
        <!--  每隔5秒调用work方法 -->
        <bean id="test111" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
              <property name="jobDetail" ref="tquartz"/>
              <property name="cronExpression" value="0/3 * * * * ?"/>    <!--  cron表达式 -->
        </bean>
        
           
        <!-- 定义调用对象和调用对象的方法 -->
        <bean id="testTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
             <property name="targetObject" ref="testJob"/>    <!-- 调用的类 -->
             <property name="targetMethod" value="workquartz"/>    <!-- 调用类中的方法 -->
             <property name="concurrent" value="false" />
        </bean>
         <bean id="tquartz" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
             <property name="targetObject" ref="testJob"/>    <!-- 调用的类 -->
             <property name="targetMethod" value="testquartz"/>    <!-- 调用类中的方法 -->
             <property name="concurrent" value="false" />     <!--配置为false不允许任务并发执行--> 
        </bean>
      
        <!-- 要调用的工作类 -->
           <bean id="testJob" class="com.odj.sssp.test.ChangeStateTask"></bean>

    测试类

    public class ChangeStateTask {
        public void workquartz(){
            System.out.println(new Date()+"||"+Thread.currentThread()+"--work--" );
            try {
                TimeUnit.SECONDS.sleep(15);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        
        public void testquartz(){
            System.out.println(new Date()+"||"+Thread.currentThread()+"--testquartz--");
        }
    }
  • 相关阅读:
    MySQL中的InnoDB中产生的死锁深究
    MySQL中的触发器应用
    你除了在客户端上会使用Cookie,还能使用哪些可以作为数据缓存呢?
    js中实现输入框类似百度搜索的智能提示效果
    linux系统中启动mysql方式已经客户端如和连接mysql服务器
    linux系统安装mysql数据库
    Linux中实用的命令
    Linux下安装jdk中遇到的坑
    Git初始化配置以及配置github
    springboot中配置文件使用2
  • 原文地址:https://www.cnblogs.com/-odj/p/5720409.html
Copyright © 2011-2022 走看看