• Spring任务调度使用


    使用方法:

    基于XML方式配置调用:

    1 任务类实现:

    package com.demo.schedule;
    
    public class ScheduleTask {
        private int i=0;
        public void process(){
            System.out.println("run to " + i++ + " times");
        }
    }

    2 spring配置文件 WebRootWEB-INFapplicationContext.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: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/task http://www.springframework.org/schema/task/spring-task-3.0.xsd">
            
        <!-- 任务bean -->
        <bean id="scheduleTask" class="com.demo.schedule.ScheduleTask"></bean>
        <task:scheduler id="scheduler" pool-size="8"/>
        <task:scheduled-tasks scheduler="scheduler">
            <!-- 定时调用,间隔5s执行一次 -->
             <task:scheduled ref="scheduleTask" method="process" fixed-delay="5000"/>              
         </task:scheduled-tasks>    
    </beans>

    3 web.xml文件配置

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
        <welcome-file-list>
            <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
    </web-app>

    将项目部署到tomcat服务器上即可定时运行,运行结果:

    ......

    run to 112 times
    run to 113 times
    run to 114 times

    基于Annotation方式配置调用:

    package com.demo.schedule;
    
    import org.springframework.scheduling.annotation.Scheduled;
    import org.springframework.stereotype.Component;
    
    @Component("scheduleTask")
    public class ScheduleTask {
        private int i = 0;
    
        @Scheduled(fixedDelay = 5000)
        public void process() {
            System.out.println("run to " + i++ + " times");
        }
    }

    spring配置文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:task="http://www.springframework.org/schema/task"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
        http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd
        http://www.springframework.org/schema/context         http://www.springframework.org/schema/context/spring-context-2.5.xsd">
    
        <context:annotation-config /> 
        <context:component-scan base-package="com.demo.schedule" />  
        <task:annotation-driven />      
    
        <!-- 任务bean 
        <bean id="scheduleTask" class="com.demo.schedule.ScheduleTask"></bean>
        -->
        <task:scheduler id="scheduler" pool-size="8"/>
        <task:scheduled-tasks scheduler="scheduler">
            <!-- 定时调用,间隔5s执行一次 -->
             <task:scheduled ref="scheduleTask" method="process" fixed-delay="5000"/>              
         </task:scheduled-tasks>    
    </beans>

    3 web.xml文件配置

       同上...

  • 相关阅读:
    Java main方法继承
    MySQL 事务
    数据库日志文件和内存刷新机制
    MySQL 存储过程
    MySQL 索引
    JVM锁优化
    JVM字节码执行引擎和动态绑定原理
    虚拟机类加载机制
    JVM内存分配与回收
    JVM垃圾收集器
  • 原文地址:https://www.cnblogs.com/hutton/p/3813361.html
Copyright © 2020-2023  润新知