Spring Task 定时任务

推荐使用基于配置XML的形式 !!!

     //首先要定义schema 空间
     <?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.springframe            work.org/schema/task"  
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.o            rg/schema/beans/spring-beans.xsd  
        http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring            -task-3.0.xsd">  
        
     //先来一种 比较笨重的方法  ...要是多个定时任务 就有点吐啦
             <bean id="schedule" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
	        <property name="triggers">
				<list>
					<ref bean="testTrigger" />
				</list>
			</property>
		</bean>

	     <bean id="testTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
			<property name="jobDetail" ref="testJobDetail" />
			<property name="cronExpression" value="0 0/1 * * * ?" />
	    </bean>

	    <bean id="testJobDetail"
		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
			<property name="targetObject" ref="targetTestService" />  <!--定时任务的类-->
			<property name="targetMethod" value="job1" /> <!--要执行的方法-->
		</bean>

	   <bean id="targetTestService" class="com.tepusoft.web.TaskJob"
			scope="prototype">
	  </bean>

再来一个比较简洁的多定时任务的配置(推荐)

    <task:annotation-driven /> <!-- 定时器开关,一定要加-->  
    <bean id="taskTest" class="com.tepusoft.web.TaskJob"></bean>  <!--定时任务的类-->
    <task:scheduled-tasks>   <!--这里面可以定义多个定时任务-->
        <task:scheduled ref="taskTest" method="job1" cron="5/3 * * * * ?" />  
    </task:scheduled-tasks>

基于注解的方式:

        <task:executor id="executor" pool-size="5" />
	<task:scheduler id="scheduler" pool-size="10" />
	<task:annotation-driven executor="executor" scheduler="scheduler" />

        // 定义  POJO 定时任务类 (基于注解的)  一定要spring容器扫描到哟
        /**
         * Spring3 @Scheduled 演示
         * @author GIE 2015年8月10日22:11:17
         */
        @Component
        public class SpringTaskDemo {
	    @Scheduled(cron = "0/5 * * * * *")
	    void doSomethingWith(){
		System.out.println("I‘m doing with cron now!");
	}
    }
时间: 2024-08-26 23:10:11

Spring Task 定时任务的相关文章

Spring Task定时任务

Spring Task定时任务 1.基于Spring Task的任务调度方法: Spring框架自带的异步执行(TaskExecutor)和任务调度(TaskScheduler)接口. Spring Task官方地址: http://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html 以下是task任务调度配置:spring-tasks.xml <?xml version="1

Spring - spring task 定时任务

spring task 实现定时任务 由于Spring3.0以后自带spring task定时任务工具,使用方法也非常简单,在Spring的架构下不需要额外引入其他jar包,同时还支持注解和配置文件两种形式. 一.注解方式配置(@Scheduled) 1.编写定时任务实体类 @Component public class SpringTaskJob { /* * cron : 秒,分,时,日,月,星期,年(可选) */ @Scheduled(cron = "0/5 * * * * ?"

Spring Task定时任务的配置和使用详解

spring中使用定时任务 1.基于xml配置文件使用定时任务 首先配置spring开启定时任务 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:task

spring task 定时任务实现

一.引入spring相关jar包: 二.在web.xml中配置spring <listener> <description>Spring监听器</description> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-na

Quartz cron 表达式(linux 定时器,java 定时任务,spring task定时任务)

Quartz cron 表达式的格式十分类似于 UNIX cron 格式,但还是有少许明显的区别.区别之一就是 Quartz 的格式向下支持到秒级别的计划,而 UNIX cron 计划仅支持至分钟级.许多我们的触发计划要基于秒级递增的(例如,每45秒),因此这是一个非常好的差异. 在 UNIX cron 里,要执行的作业(或者说命令)是存放在 cron 表达式中的,在第六个域位置上.Quartz 用 cron 表达式存放执行计划.引用了 cron 表达式的 CronTrigger 在计划的时间里

spring boot 之 spring task(定时任务)

cron:通过表达式来配置任务执行时间cron表达式详解 一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素.按顺序依次为: 秒(0~59)分钟(0~59)3 小时(0~23)4  天(0~31)5 月(0~11)6  星期(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)年份(1970-2099) 其中每个元素可以是一个值(如6),一个连续区间(9-12),一个间隔时间(8-18/4)(/表示每隔4小时),一个列表(1,3,5),通配符.由于"月份中

Spring Task中的定时任务无法注入service的解决办法

1.问题 因一个项目(使用的是Spring+SpringMVC+hibernate框架)需要在spring task定时任务中调用数据库操作,在使用 @Autowired注入service时后台报错,导致系统不能访问. 2.代码 定时任务的代码如下: @Componentpublic class TaskJob {        Logger logger = Logger.getLogger(TaskJob.class);        @Autowired    private TempSe

使用Spring Task轻松完成定时任务

一.背景 最近项目中需要使用到定时任务进行库存占用释放的需求,就总结了如何使用Spring Task进行简单配置完成该需求,本文介绍Spring3.0以后自定义开发的定时任务工具, spring task,我们可以将它比作一个轻量级的Quartz,使用简单方便,除spring相关的包外不需要额外的包,而且支持注解和配置文件两种形式,下面我会分别介绍这两种方式. 二.定时任务开发步骤 开发环境 Spring 4.2.6.RELEASE Maven 3.3.9 Jdk 1.7 Idea 15.04

spring定时任务轮询(spring Task)

定时任务轮询比如任务自服务器启动就开始运行,并且每隔5秒执行一次. 以下用spring注解配置定时任务.1.添加相应的schema 1 2 3 4 xmlns:task=" xsi:schemaLocation="     http://www.springframework.org/schema/task     http://www.springframework.org/schema/task/spring-task-3.0.xsd" 完整schema如下: 1 2 3