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. ...
随机推荐
- 几何服务,cut功能测试
关于几何服务 几何服务用于辅助应用程序执行各种几何计算,如缓冲区.简化.面积和长度计算以及投影.在 ArcGIS Server 管理器中启动几何服务之后,您才能够在应用程序开发过程中使用该服务. 问题 ...
- C#中Object和Json之间的转换
//创建一个类,此类有两个方法 using Newtonsoft.Json;namespace System{ public static class JsonExtension { ...
- 判断ecshop未付款添加去付款按钮
判断ecshop未付款添加去付款按钮,打开ecshop模板目录下user_transaction.dwt找到{$item.handler} 这个变量 给它下面添加以下代码 {if $item.pay_ ...
- 使用udev实现显示器的热插拔和usb的自动挂载
udev:用来监听硬件设备是否发生改变,并可以给硬件设备命名 ,也可以在硬件发生改变之后执行脚本 使用udev检测显示器是否发生变化,然后执行脚本,解决linux显示器热插拔问题 先补充一点: [ro ...
- iOS学习路线图
一.iOS学习路线图 二.iOS学习路线图--视频篇 阶 段 学完后目标 知识点 配套学习资源(笔记+源码+PPT) 密码 基础阶段 学习周期:24天 学习后目标: ...
- CentOS6.6安装及配置vsftpd文件服务器
1.安装vsftpd和db4-utils,后者用来生成密码库文件,命令如下: # yum install -y vsftpd db4* 2.修改SELINUX,命令如下: # vim /etc/sys ...
- python---tcp/ip网络编程
重点总结: 服务端:一直运行(while true),监听运行所在机器(ip)某端口,多线程或多进程接收客户端的socket请求 客户端:主动发起请求,需求知道服务器的ip和端口 服务端: # -*- ...
- javascript获取当前url
在WEB开发中,许多开发者都比较喜欢使用javascript来获取当前url网址,本文就此为大家总结一下比较常用获取URL的javascript实现代码,以下示例是前面为相应实现方法,后面是获取URL ...
- flex自适应小例子
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- STM32 assert_param
在STM32的固件库和提供的例程中,到处都可以见到assert_param()的使用.如果打开任何一个例程中的stm32f10x_conf.h文件,就可以看到实际上assert_param是一个宏定义 ...