在实际开发中遇到这个问题,quartz设置的任务会调用两次。百思不得其解,特向大家请教。
    
    xml配置文件如下所示:
      <bean id="externalDataScheduling"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="ExternalDataCollectionAction"></property>
<property name="targetMethod" value="bytask"></property>
<property name="concurrent" value="false"></property>
</bean> <bean id="externalDataTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="externalDataScheduling"></property>
<property name="cronExpression" value="15 04 * * * ? *"></property>
</bean> <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="externalDataTrigger" />
</list>
</property>
</bean>
其他配置均没有问题,只是任务会重复调用。先谢谢大家了。

解决方案 »

  1.   

    问题已解决,查阅相关的博客及帖子,是tomcat的servel.xml 的配置出了问题。原配置文件出错的地点具体如下:
     <Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true"
                xmlValidation="false" xmlNamespaceAware="false">
          <Context path="" docBase="tkdam" debug="0" reloadable="false"/>
    需要修改的地方在两处: 
       appBase="" 以及  docBase="webapps/tkdam"对本问题有帮助的链接主要有以下:
    http://blog.163.com/qyr_ecust/blog/static/9793217620095222134687/
    http://dogandwolf.blog.sohu.com/91483746.html
    http://www.javaeye.com/topic/173080
    http://blog.csdn.net/tiandaye120/archive/2010/01/13/5187162.aspx
    在此表示感谢!无人回复,直接结贴。
      

  2.   

    <Host name="localhost" appBase="webapps"
      unpackWARs="true" autoDeploy="true"
      xmlValidation="false" xmlNamespaceAware="false">
      <Context path="" docBase="tkdam" debug="0" reloadable="false"/>
    tomcat加载了两次你的应用。
    第一次它会去加载appbase指定的目录,然后会加载docbase指定的目录。
      

  3.   

    多谢捧场,来者有分。
    xzytest网友字太少了....
    原因我已经清楚了,但还是谢谢duqiangcise网友...