Spring Quartz 调度器的使用

发布于 2021-11-30 17:27:13 字数 1447 浏览 796 评论 2

一下是本人是用的spring的Quartz的调度器,我将参数设定的是每天的10:30分就执行一下调度任务。

1:我将项目发布之前设定我的系统时间是10:26,然后发布好项目,当到系统时间到了10:30时,就会执行调度任务。

2:我将系统时间更改为10:28,但是当系统时间到10:30的时候为什么调度器不再执行调度任务??

希望知道的,给予讲解一下。感谢了

<!-- job的配置开始 -->
	<bean id="myJobDetail" 	class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<property name="targetObject">
			<ref bean="prodMaterialRequirementController" />
		</property>
		<property name="targetMethod">
			<value>updateStorages</value>
		</property>
	</bean>
	<!-- job的配置结束 -->
	<!-- 调度的配置开始,每天的10:30触发 -->
    <bean id="crontestJobTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail">
            <ref bean="myJobDetail" />
        </property>
 
        <property name="cronExpression"  value="0 30 10 * * ? *"/>
    </bean>
    <!-- 调度的配置结束 -->
     <!-- 启动触发器的配置开始 -->
    <bean name="startQuertz" lazy-init="false" autowire="no"
        class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref bean="crontestJobTrigger" />
            </list>
        </property>
    </bean>
    <!-- 启动触发器的配置结束 -->

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

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

发布评论

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

评论(2

爱你是孤单的心事 2021-12-01 01:29:32

spring的调度是有默认线程数限制的,默认是10,如果任务“堆积”比较多,没有足够的线程支持,任务自然就押后了,

要配置org.quartz.threadPool.threadCount等

柳若烟 2021-12-01 00:21:44

我做了一下测试:

1:项目发布之后,系统是准时的当天时间(2013-03-15-10:28),当系统时间为10:30后,程序开始执行调度器。

2:在1的基础上,将当天时间改到(2013-03-15-10:28),等待系统时间到10:30,此时程序不执行调度器。

3:在1的基础上,将系统时间(2013-03-16-10:28),等到系统时间运行到10:30时,程序开始执行调度器。

4:在1的基础上,将当天时间改到(2013-03-15-10:28),等待系统时间到10:30,此时程序不执行调度器。

总结:当系统发布后调度器只会在当天设定的时间点上运行一次,并且系统将记录今天的调度器已经运行过了,如果改动当天运行的时间时,想在运行调度器,系统会判读今天调度器是否执行过,如果执行过此次将不再执行调度器。

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