quartz + spring定时任务调度,不执行调度任务,给指点一下吧

发布于 2021-11-23 02:35:20 字数 2032 浏览 671 评论 5

Quartz jar是1.8.6 Spring3.0搭建的项目:

调度类:

public class CerpToCposJobBeanService  {  
	private SmartMenuScheduleService smartMenuScheduleService;
 
	protected void runWork( )  {
		System.out.println("========");
	}
	public SmartMenuScheduleService getSmartMenuScheduleService() {
		return smartMenuScheduleService;
	}
	public void setSmartMenuScheduleService(SmartMenuScheduleService smartMenuScheduleService) {
		this.smartMenuScheduleService = smartMenuScheduleService;
	}  
}


XML配置内容

<!-- 定义job --> 
	<bean name="mathsJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
 	<!-- 注入的service层 --> 
		<property name="targetObject" ref="cerpToCposMenuJob" />
 	<!-- 调用的方法 -->  
		<property name="targetMethod" value="runWork" />
 		<!--concurrent为true,则允许一个QuartzJob并发执行,否则就是顺序执行 --> 
		<property name="concurrent" value="false" />
	</bean>

 <!-- 定义CronTriggerBean触发器 -->  
	<bean id="mathsTriggerBean" class="org.springframework.scheduling.quartz.CronTriggerBean">
		<!-- 注入需要出发的job -->
		<property name="jobDetail">
			<ref bean="mathsJob" />
		</property>
		<!-- 触发的规则,这里是 每天的凌晨1点触发 -->
		<property name="cronExpression">
			<value>0/10 * * * * ?</value>
		</property>
	</bean>

 <!-- 启动触发器的配置开始 -->
 	    <bean name="startQuertz" lazy-init="true" autowire="no"
 	        class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
 	        	<property name="startupDelay" value="60" />
 	        <property name="triggers">
 	            <list>
                 <ref bean="mathsTriggerBean" />
 	            </list>
 	        </property>
 	    </bean>
 	    <!-- 启动触发器的配置结束 -->



就这样简单的配置不知道为什么不执行调度啊??有知道的给点指导,谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

拍不死你 2021-11-26 15:32:57

首先,我觉得你第一件事情是查看spring的文档,其实spring文档是有和quirtz的整合例子,把例子跑一遍,基本就懂了

旧伤慢歌 2021-11-26 13:12:30

回复
 

    <bean id="clearAndResetTimerTask" class="com.dc.gameserver.serverCore.service.timerTask.clearAndResetTimerTask"/>

    <bean id="clearAndResetTimerTaskjobDetail"

          class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

        <property name="targetObject" ref="clearAndResetTimerTask"/>

        <property name="targetMethod" value="executeTimerTask"/>

    </bean>

    <bean id="cardBoxTimerTaskTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">

        <property name="jobDetail" ref="clearAndResetTimerTaskjobDetail" />

        <!--<property name="cronExpression" value="0/5 * * * * ?  " />-->

        <!--凌晨12点执行一次-->

        <property name="cronExpression" value="0 0 0 * * ?  " />

    </bean>

    <bean id="cardBoxTimerTaskScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" >

        <property name="configLocation" value="file:res/quratzConfig/quartz.properties"/>

        <property name="quartzProperties">

            <props>

                <prop key="org.quartz.scheduler.skipUpdateCheck">true</prop>

            </props>

        </property>

        <property name="triggers" ref="cardBoxTimerTaskTrigger"/>

    </bean>

贴一个参考  另外  貌似版本也会导致一些莫名的问题 我目前版本就是 spring 3.2.5  qurtaz  1.8.6  

爱的故事 2021-11-26 08:14:40

很有可能是时差问题导致的,比如jvm用的时间和服务器时间是不同的。

复古式 2021-11-25 09:15:51

<property name="targetObject" ref="cerpToCposMenuJob" /> 这里有引用在上面写过这个been

墨洒年华 2021-11-25 08:11:31

把你的
runWork那个类配置在xml就可以了  <bean class=""/>

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文