Spring环境下实现定时执行任务
来源:互联网 发布:区域生长 分割算法 编辑:程序博客网 时间:2024/06/05 17:59
经常有遇到需要定时同步数据的需求,现在分享下Spring框架下使用quartz插件实现定时执行程序的方法。
- 首先,要准备的是quartz插件的架包,我测试的版本是:quartz-all-1.6.6.jar
没有架包可点击以下链接下载:
quartz架包下载
- 创建定时任务所需的配置文件,以“quartzConfig.xml”为例
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd"><beans><!-- 设置定时任务 --><bean name="customerAction" class="com.xxx.CustomerAction"/><bean id="quartzDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <ref bean="customerAction" /><!-- 指向启动方法所在的类 --> </property> <property name="targetMethod"> <value>synCustomer</value><!-- 需执行的方法 --> </property> <property name="concurrent" value="false" /> </bean> <!-- 创建定时器 --><bean id="triggerBean" class="org.springframework.scheduling.quartz.CronTriggerBean"><property name="jobDetail" ref="quartzDetail" /><!-- 每天2:00调用一次 --><property name="cronExpression" value="0 0 2 * * ?" /></bean><!-- 启动定义的定时器 --><bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"><property name="triggers"><list><ref bean="triggerBean" /></list></property></bean></beans>
此处调用的是com.xxx.CustomerAction类中的synCustomer方法,此方法无参数传递。
定时时间的格式为:[秒] [分] [小时] [日] [月] [周] [年]
'*' 表示所有值,'?' 表示不指定值,'-' 表示区间,','表示指定多个值。
提供几个例子:
0 15 10 * * ? 2005 2005年每天10点15分触发
0 15 10 ? * MON-FRI 从周一到周五每天上午的10点15分触发
0 0 12 1/5 * ? 每月的第一个中午开始每隔5天触发一次
0 11 11 11 11 ? 每年的11月11号 11点11分触发(光棍节)
- web.xml中配置加载quartzConfig.xml和监听
<context-param><param-name>contextConfigLocation</param-name><param-value>classpath:quartzConfig.xml</param-value></context-param>
<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>
可能会出现的问题,定时时间到时执行2次或多次所指定的方法
造成的原因可能是,在其他配置文件中有重复加载监听,或者是tomcat中有配置虚拟目录,均需要仔细检查配置文件。
---END---
玩的愉快~
0 0
- Spring环境下实现定时执行任务
- 如何用Spring实现集群环境下的定时任务
- 如何用Spring实现集群环境下的定时任务
- 如何用Spring实现集群环境下的定时任务
- Spring框架下的定时任务执行
- spring执行定时任务
- spring执行定时任务
- spring执行定时任务
- spring 定时执行任务
- spring执行定时任务
- spring 执行定时任务
- spring 定时执行任务
- spring执行定时任务
- Spring 实现定时执行任务(Spring 调度)
- 集群环境下如何防止定时任务重复执行?
- 集群环境下如何防止定时任务重复执行?
- Window环境定时执行任务
- spring+quartz定时任务调度实现集群环境下的整合
- JAVA垃圾回收机制
- 稳压电源(11) 获得不同输出电压的方法
- 0002[虚构函数]
- hdu 1116 欧拉路 + 并查集
- Microsoft .NET Framework 4 Client Profile 导致DLL引用失败
- Spring环境下实现定时执行任务
- 简明python教程学习笔记(七)-模块
- JS正则表达式 验证 输入的是正负小数(保留3位小数)或者只能输入正负整数
- 程序员学习能力提升三要素
- codeforces 414 c
- Linux系统查看进程信息相关命令:
- Python开发WebService--使用soaplib库
- Json XSS (只是一个小窥)
- Alljoyn服务器框架2总线及会话