一、spring 定时任务

spring 定时任务 ,最好使用quartz 实现。下面我以spring4为例

二、实战(默认)

1、pom配置

                <!-- spring time task -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>1.8.4</version>
</dependency>

2、bean 配置

<?xml version="1.0" encoding="gb2312"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"
default-autowire="byName"> <bean name="myTaskJob" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass" value="com.yuanmeng.spring.TaskDemo" />
<property name="jobDataAsMap">
<map>
<entry key="timeout" value="36000" />
</map>
</property>
</bean> <bean id="myTaskTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail" ref="myTaskJob" />
<property name="startDelay" value="3000" />
<property name="repeatInterval" value="60000" /><!-- 每600秒调度一次 -->
</bean>
<!--启动任务-->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="myTaskTrigger" />
</list>
</property>
</bean> </beans>

3、定时java类, 继承 QuartzJobBean

package com.yuanmeng.spring;

import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean; public class TaskDemo extends QuartzJobBean { private static int i = 0; @Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException { System.out.println("--------- begin ---------"); System.out.println(" i = " + i++); System.out.println("--------- end ---------");
} }

4、启动

package com.yuanmeng.spring;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.scheduling.quartz.JobDetailBean; public class Client { public static void main(String[] args) { ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:spring/spring-timetask.xml"); org.springframework.scheduling.quartz.JobDetailBean bean = (JobDetailBean) ac.getBean("myTaskJob"); System.out.println(bean != null); }
}

5、看下结果

--------- begin ---------
i = 0
--------- end ---------
--------- begin ---------
i = 1
--------- end ---------
--------- begin ---------
i = 2
--------- end ---------
--------- begin ---------
i = 3
--------- end ---------
--------- begin ---------
i = 4
--------- end ---------
--------- begin ---------
i = 5
--------- end ---------
--------- begin ---------
i = 6
--------- end ---------
--------- begin ---------
i = 7
--------- end ---------
--------- begin ---------
i = 8
--------- end ---------
--------- begin ---------
i = 9
--------- end ---------
--------- begin ---------
i = 10
--------- end ---------
--------- begin ---------
i = 11
--------- end ---------
--------- begin ---------
i = 12
--------- end ---------

三、实战(不继承)

1、bean 配置

    <bean id="myTask" class="com.yuanmeng.spring.TaskDemo2" />

    <bean id="jobDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 指定定时任务执行类 -->
<property name="targetObject" ref="myTask" />
<!-- 指定定时任务执行方法 -->
<property name="targetMethod" value="doIt" />
<property name="concurrent" value="false" />
</bean> <bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean"> <property name="jobDetail" ref="jobDetail" /> <property name="startDelay" value="5000" /> <property name="repeatInterval" value="3000" />
</bean> <!-- 总调度用于启动Spring定时器 -->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="simpleTrigger" />
</list>
</property>
</bean>

2、自定义任务类

package com.yuanmeng.spring;

public class TaskDemo2 {

    private static int i = 0;

    public void doIt() {

        System.out.println("---------doIt begin ---------");

        System.out.println(" i = " + i++);

        System.out.println("---------doIt end ---------");
} }

3、启动

ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:spring/spring-timetask2.xml");

4、结果

---------doIt begin ---------
i = 0
---------doIt end ---------
---------doIt begin ---------
i = 1
---------doIt end ---------
---------doIt begin ---------
i = 2
---------doIt end ---------
---------doIt begin ---------
i = 3
---------doIt end ---------
---------doIt begin ---------
i = 4
---------doIt end ---------
---------doIt begin ---------

spring4 定时任务的更多相关文章

  1. Spring4.0编程式定时任务配置

    看过很多定时调度的配置,大多使用XML配置,觉得比较麻烦,也比较老套.这里介绍一种基于spring4.0注解编程式配置定时任务,简单清晰,使用方便.. 至于引入spring相关jar这里不多说,直接切 ...

  2. Spring定时任务,Spring4整合quartz2.2,quartz-scheduler定时任务

    Spring4整合quartz2.2,quartz-scheduler定时任务,Spring定时任务 >>>>>>>>>>>>& ...

  3. 基于Spring4+SpringMVC4+Mybatis3+Hibernate4+Junit4框架构建高性能企业级的部标GPS监控平台

    开发企业级的部标GPS监控平台,投入的开发力量很大,开发周期也很长,选择主流的开发语言以及成熟的开源技术框架来构建基础平台,是最恰当不过的事情,在设计之初就避免掉了技术选型的风险,避免以后在开发过程中 ...

  4. 定时任务-在spring中配置quartz

    使用的版本Spring4.04+Quartz2.2.3,关于jar包自行下载. 详细需要以下几个步骤来完成: 1.  定义要执行的Job类 2.  定义quartz的配置文件applicationCo ...

  5. Spring4定时器 cronTrigger和simpleTrigger实现方法

    spring4定时器 cronTrigger和simpleTrigger实现方法 Quartz 是个开源的作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制.Quartz 允许 ...

  6. spring计划任务,springMvc计划任务,Spring@Scheduled,spring定时任务

    spring计划任务,springMvc计划任务,Spring@Scheduled,spring定时任务 >>>>>>>>>>>> ...

  7. 基于Spring4的定时任务管理

    在项目中,有时会遇到定时任务的处理,下面介绍一下我的做法. 此做法基于Spring4,Spring框架搭建成功,另需引入quartz.jar,pom.xml文件中加入 <dependency&g ...

  8. Spring4整合quartz2.2.3,quartz动态任务

    Spring4整合quartz2.2.3,quartz动态任务 >>>>>>>>>>>>>>>>> ...

  9. 项目ITP(六) spring4.0 整合 Quartz 实现动态任务调度

    前言 系列文章:[传送门] 项目需求: http://www.cnblogs.com/Alandre/p/3733249.html 上一博客写的是基本调度,后来这只能用于,像每天定个时间 进行数据库备 ...

随机推荐

  1. 【转】NSArray排序方法

    原文网址:http://www.cnblogs.com/xiaobaizhu/archive/2013/06/05/3119983.html 从网上查的,非常方便的排序api,功能也很强大 1.sor ...

  2. 嵌入式 hi3518平台增加路由代码

    <span style="font-family:Courier New;"> /********************************** (C) COPY ...

  3. 软件测试——boost单元测试 C++

    分类: 1. 下载安装Boost 2. 在vs2010 中设置   工具->选项->vc++目录   设置包含文件目录:找到解压的boost文件夹eg:C:\boost_1_43_03. ...

  4. Dubbo原理解析-注册中心之Zookeeper协议注册中心

    下面我们来看下开源dubbo推荐的业界成熟的zookeeper做为注册中心, zookeeper是hadoop的一个子项目是分布式系统的可靠协调者,他提供了配置维护,名字服务,分布式同步等服务.对于z ...

  5. Delphi 7使用自定义图标关联文件类型

    Delphi 7使用自定义图标关联文件类型 5.2 Delphi编程(40)  版权声明:本文为博主原创文章,未经博主允许不得转载. 在开发过程中,我们经常需要属于自己的文件类型,自定义的后缀名不仅可 ...

  6. Android百度地图开发(二)地图覆盖物

    上一篇文章写道如何在一个mapview中简单的显示地图:本次学习一下如何在地图上添加一些覆盖物. 1.设置显示交通地图: // 显示交通地图 mapView.setTraffic(true); 2.设 ...

  7. 【LeetCode】168 & 171- Excel Sheet Column Title & Excel Sheet Column Number

    168 - Excel Sheet Column Title Given a positive integer, return its corresponding column title as ap ...

  8. bzoj 3270 博物馆(高斯消元)

    [题意] 两人起始在s,t点,一人pi概率选择留在i点或等概率移动,问两人在每个房间相遇的概率. [思路] 把两个合并为一个状态,(a,b)表示两人所处的状态,设f[i]为两人处于i状态的概率.则有转 ...

  9. mybatis系列-16-spring和mybatis整合

    16.1     整合思路 需要spring通过单例方式管理SqlSessionFactory. spring和mybatis整合生成代理对象,使用SqlSessionFactory创建SqlSess ...

  10. .net/c#连接sqlserver

    Webconfig代码 <configuration> <appSettings> <add key="myconnect" value=" ...