spring定时器配置
在此记录两种定时任务的配置:
一种是quart定时器:
<1>配置xml文件(定时任务配置)
<!--定时任务 -->
<bean id="txfwBomc" class="shmc.framework.scheduling.JobDetailFactoryBean">
<property name="jobDataAsMap">
<map>
<entry key="targetObject" value="bomcManager"/> <!-- 定时任务所在类 -->
<entry key="targetMethod" value="bomcDataPropel"/> <!-- 定时任务实现方法 -->
</map>
</property>
<property name="concurrent" value="false" />
</bean> <!--定义时间间隔触发器 -->
<bean id="bomcTigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="txfwBomc"/>
<property name="cronExpression" value="0 0 1 * * ?" />
</bean>
<2>定义实现类的bean
<bean id="bomcManager" class="com.test.service.BomcManager" parent="frameworkManager">
</bean>
<3>启动定时任务
<!-- 集群定时器调度工厂 -->
<bean id="clusterSchedule" class="shmc.framework.scheduling.SchedulerFactoryBean">
<property name="applicationContextSchedulerContextKey">
<value>applicationContext</value>
</property>
<property name="triggers">
<list>
<!-- BOMC推送 -->
<ref bean="bomcTigger"/>
</list>
</property>
</bean>
<4>业务层实现代码
………………
一种利用注解:
<1>配置xml文件,需要引用spring-task-3.1.xsd文档。
<beans
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="
http://www.springframework.org/schema/task //名称空间的名字
http://www.springframework.org/schema/task/spring-task-3.1.xsd"> //模式文档的位置 <!-- 扫描包路径 -->
<context:component-scan base-package="com.src.xx" >
</context:component-scan>
<!-- 开启定时器-->
<task:annotation-driven/> </beans>
<注意:>上边开启定时任务时,没有设置线程池。而spring默认是单线程,多个任务执行起来时间会有问题(B任务会因为A任务执行起来需要20S而被延后20S执行)
所以要配置线程池如下:
<!-- 开启定时器-->
<task:annotation-driven scheduler="taskScheduler"/> <!-- 配置定时任务的线程池 -->
<task:scheduler id="taskScheduler" pool-size="5"/>
<2>java代码,具体实现在业务层实现
package com.src.xx.controller.api.timer; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import com.src.xx.service.timer.XianshiTimerService; @Component("taskXianshi")
public class XianshiTimer { @Autowired
private XianshiTimerService xianshiTimerService; /**
* 定时任务
*/
@Scheduled(cron = "0 26 10 * * ?")
public void xsActivityRemind(){
xianshiTimerService.xsActivityRemind();
} }
● spring定时任务cronExpression时间:<注意:每个时间点中间必须有空格分隔>
一个cronExpression的表达式从左到右定义:
秒(0-59)
分钟(0-59)
小时(0-23)
月份中的日期(1-31)
月份(1-12或JAN-DEC)
星期中的日期(1-7或SUN-SAT)
年份(1970-2099)
spring定时器配置的更多相关文章
- 两种流行Spring定时器配置:Java的Timer类和OpenSymphony的Quartz
1.Java Timer定时 首先继承java.util.TimerTask类实现run方法 import java.util.TimerTask; public class EmailReportT ...
- Spring定时器配置与运用,及Cron表达式的详解
一:首先在spring的配置文件里配置一个定时器 <task:executor id="executor" pool-size="5" /> < ...
- spring定时器
本人小菜鸟一枚,今天在公司看到一段spring定时器配置,自己总结一下! <!-- 定义调用对象和调用对象的方法 --><bean id="jobtask9" c ...
- Spring定时器的两种实现方式
有两种流行Spring定时器配置:Java的Timer类和OpenSymphony的Quartz. 1.Java Timer定时 首先继承java.util.TimerTask类实现run方法 imp ...
- [spring-framework]Spring定时器的配置和使用
开发中我们常常会做一些定时任务,这些任务有开始时间,并会按一定的周期或规则执行.如此我们在Java程序开发中使用定时器来处理定时任务. <!-- MessageRequestTask类中包含了m ...
- spring定时器的配置
首先,新建一个java项目,下面导入需要的jar包: 这里有你需要的jar包哦. jar包下载 在src文件夹下,新建一个applicationContext.xml文件 <?xml versi ...
- spring通过配置xml文件集成quartz定时器
概述 Spring为创建Quartzde Scheduler.Trigger和JobDetail提供了方便的FactoryBean类,以便能够在Spring容器中享受注入的好处. 此外,Spring还 ...
- spring定时器,定时器一次执行两次的问题
Spring 定时器 方法一:注解形式 配置文件头加上如下: xmlns:task="http://www.springframework.org/schema/task" htt ...
- Spring 定时器Quartz的用法
Spring定时器Quartz的用法也很简单,需要引入quartz-all-1.5.2.jar java代码如下: package com.coalmine.desktop; import java. ...
随机推荐
- RelativeLayout中实现控件平分屏幕
<RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_con ...
- 转:HAR(HTTP Archive)规范
HAR(HTTP Archive),是一个用来储存HTTP请求/响应信息的通用文件格式,基于JSON.这个格式的出现可以使HTTP监测工具以一种通用的格式导出所收集的数据,这些数据可以被其他支持HAR ...
- oracle 中的cascade
级联删除,比如你删除某个表的时候后面加这个关键字,会在删除这个表的同时删除和该表有关系的其他对象
- iOS,几种设计模式
1.单例模式 2.观察者模式 3.委托代理 4.block回调 5.反射机制 单例模式 iOS单例模式的2种方式.根据线程安全的实现来区分,一种是使用@synchronized ,另一种是使用GCD的 ...
- EaeyUI
基础 定义 一个轻量级的JavaScript框架 基本用法 $(function(){代码}) 相当于window.load()(当窗口加载完毕后触发) 选择器是jQuery的根基 通过选择器选中元素 ...
- 自由缩放属性resize
为了增强用户体验,CSS3增加了很多新的属性,其中resize就是一个重要的属性,它允许用户通过拖动的方式来修改元素的尺寸来改变元素的大小.到目前为止,可以使用overflow属性的任何容器元素. 在 ...
- CentOS 6.2 SVN搭建 (YUM安装)
安装说明 安装了一下SVN服务器,本文没有与Apache整合,过程如下: 系统环境:CentOS-6.2安装方式:yum install (源码安装容易产生版本兼容的问题)安装软件:系统自动下载SVN ...
- Android中处理崩溃异常和记录日志
大家都知道,现在安装Android系统的手机版本和设备千差万别,在模拟器上运行良好的程序安装到某款手机上说不定就出现崩溃的现象,开发者个人不可能购买所有设备逐个调试,所以在程序发布出去之后,如果出现了 ...
- java实现二分查找
/** * 二分查找 * @param a * @param n * @param value * @return * @date 2016-10-8 * @author shaobn */ publ ...
- django中文配置的问题
language_code:'zh-hans' 生成的语言文件请使用zh_Hans,这样才能你的app和系统的app完全翻译成中文,掉此坑的请在下面留言