要实现每隔多长时间发送一个请求
在applicationContext.xml中配置
所需jar包:
链接:http://pan.baidu.com/s/1jGL4kzO 密码:6ojg
一,配置目标类
- <pre name="code" class="html"> <bean id="backupAdListPolicyJob" class="com.hyan.jms.Test">
- <property name="para" value="Spring定时测试v1"></property>
- </bean>
- <bean id="scheduSer" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
- <!-- 指定 要执行的定时任务类 -->
- <property name="targetObject">
- <ref bean="scheduImpl"/>
- </property>
- <!-- 指定执行任务的方法名称-->
- <property name="targetMethod">
- <value>scheduImpl</value>
- </property>
- </bean>
- <bean id="timeTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
- <!-- 声明要运行的实体 -->
- <property name="jobDetail">
- <ref bean="scheduSer"/>
- </property>
- <property name="cronExpression">
- <!-- 在每天10点到下午10:59期间的每1分钟触发 -->
- <value>0 * 10 * * ?</value>
- </property>
- </bean>
- <bean id="sfb" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
- <property name="triggers">
- <list>
- <ref local="timeTrigger"/>
- </list>
- </property>
- </bean>
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app version="2.5"
- xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
- http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>/WEB-INF/applicationContext.xml</param-value>
- </context-param>
- <listener>
- <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
- </listener>
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
- </listener>
- <welcome-file-list>
- <welcome-file>index.jsp</welcome-file>
- </welcome-file-list>
- </web-app>
java的实现代码
- package com.hyan.jms;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- public class Test {
- private String para;
- public void scheduImpl(){
- SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- System.out.println(para+" Time is :"+format.format(new Date()));
- }
- public String getPara() {
- return para;
- }
- public void setPara(String para) {
- this.para = para;
- }
- }
启动tomcat 实现效果
关于定时器的表达式
时间的配置如下:<value>0 * 10 * * ?</value>
时间大小由小到大排列,从秒开始,顺序为 秒,分,时,天,月,年 *为任意 ?为无限制。由此上面所配置的内容就是,在每天10点到下午10:59期间的每1分钟触发
-----------------------------------------------------------------------------------------------------------------
定时任务设置
<!--启用spring @Transactional注解 -->
<tx:annotation-driven />
<!-- 定时任务设置 -->
<bean id="scheduler"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
</bean>
<!-- 定时任务 -->
<!-- 调用工作对象和工作方法 -->
<bean id="jobBean" class="com.gamexun.gm.common.RemovetTemp" />
<bean id="jobWeekly" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 调用的类 -->
<property name="targetObject" ref="jobBean" />
<!-- 调用类的方法 -->
<property name="targetMethod" value="executeWeekly" />
<!-- 不能并行 -->
<property name="concurrent" value="false" />
</bean>
<!-- 每隔2小时执行一次 -->
<bean id="triggerWeekly" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="jobWeekly" />
<property name="cronExpression" value="0 0 0/2 * * ?"/><!-- 0 0/1 * * * ? --><!-- 0 */2 * * * -->
</bean>
<bean id="startQuertz" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="true" >
<property name="triggers">
<list>
<ref bean="triggerWeekly" />
</list>
</property>
</bean>