当前位置:编程学习 > JAVA >>

spirng quartz不能运行

我的项目结构:

一共就三个文件:
spring的配置文件applicationContext.xml:
<!-- 要调用的工作类 -->
<bean id="myTask" class="cn.sh.ideal.exporttxt.util.MyTask"/>

<!-- 定义调用对象和调用对象的方法 -->
<bean name="exportTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 调用的类 -->
<property name="targetObject">
<ref bean="myTask"/>
</property>
<!-- 调用类中的方法 -->
<property name="targetMethod">
<value>execute</value>
</property>
</bean>

<!-- 触发器 -->
<bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
<!-- 指向我们的任务 -->
<property name="jobDetail" ref="exportTask" />
<!--  定义执行时间 -->
<property name="cronExpression">
<value>0 * 13 * * ?</value>
</property>
</bean>


<!-- 调度器  -->
<bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
            <property name="triggers">
                 <list>
                     <ref bean="doTime"/>
                 </list>
             </property>
    </bean>

还有web.xml的配置文件:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring/applicationContext.xml
</param-value>
</context-param>

<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>


最后是测试类:
public class MyTask {
static long Count = 0;

public void execute() {
Count++;
System.out.print("Count1=" + Count);

}

}

发布到tomcat下启动服务器,都正常,可是后台就是不输出count值,什么都不显示。。。
哪位大神帮帮我! --------------------编程问答-------------------- <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-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">

<bean id="triggerUtil" class="cn.itcast.utils.timer.Triger"/>
<bean id="triggerUtil2" class="cn.itcast.utils.timer.Trigers"/>
<!-- 指定任务(方法) -->
<bean id="expDataBaseJob"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 调用的任务类 -->
<property name="targetObject">
<ref local="triggerUtil" />
</property>
<!-- 调用的方法 -->
<property name="targetMethod">
<value>test</value>
</property>
</bean>
<bean id="expDataBaseJob2"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 调用的任务类 -->
<property name="targetObject">
<ref local="triggerUtil2" />
</property>
<!-- 调用的方法 -->
<property name="targetMethod">
<value>test2</value>
</property>
</bean>
<!-- 设定计划执行时间 -->
<bean id="expDataBaseTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref local="expDataBaseJob" />
</property>
<property name="cronExpression">
<value>0 * 16 * * ?</value>
</property>
</bean>
<!-- 设定计划执行时间 -->
<bean id="expDataBaseTrigger2" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref local="expDataBaseJob2" />
</property>
<property name="cronExpression">
<value>0 * 16 * * ?</value>
</property>
</bean>
<!-- 任务执行器配置 集合 -->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref local="expDataBaseTrigger" />
<ref local="expDataBaseTrigger2" />
</list>
</property>
</bean>
</beans> --------------------编程问答-------------------- 这是我的完整的配置,你的定时器如果配置没问题的话就看看时间的配置是不是对的 --------------------编程问答-------------------- 发现一个很奇怪的现象
我把触发时间设置成1/30 * * * * ?
定时器有反应,每30秒执行一次,可以看到效果
可是我在上午10:23把时间设为* 25 10 * * ?并启动服务器
它就没反应了!
10:26了也没什么反应!
quartz固定某点执行任务需要等到第二天这个时候吗?
谁能解释一下这是怎么回事? --------------------编程问答-------------------- 0 25 10 ? * *
10点25这样试试!!!
还有注意、这个读的是服务器的时间。如果你本机就是服务器就不用考虑这个问题了! --------------------编程问答-------------------- 一看到这些乱起八糟的配置文件我就头晕。。。。楼主先去看看quartz的表达式 --------------------编程问答-------------------- 我服务器是本机啊... --------------------编程问答-------------------- 我的quartz的表达式写错了吗?没有啊。。。
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,