关于quartz定期,起服务时不新增配置文件中的定期问题

关于quartz定期,起服务时不新增配置文件中的定期问题

问题原因:生产环境中起服务,未加载配置文件信息,且quartz连接超时

查找原因发现 由于别人新建了一个定期文件 并将 quartz工厂类的id于之前文件的id命名成相同导致加载的时候 由于单例的原因不能加载另一个配置文件


正确的配置: 可将多个定期配置到同一个文件中 用同一个quartz工厂类 或者将quartz工厂类的id名称成不同的名称

	<bean id="xxxjob"
		class="org.springframework.scheduling.quartz.JobDetailBean"> 
           <!--调用的类 -->
		<property name="jobClass" value="com.cvicse.hrzcyp.flow.InfoSubmitProjectMessageTimingFlow">
		</property> 
		<property name="jobDataAsMap">
			<map>
				<entry key="timeout" value="0"/>
			</map>
		</property>
	</bean> 
	<!-- 定时任务-押品信息报送  -->
	<bean id="xxx" class="org.springframework.scheduling.quartz.CronTriggerBean">
		<property name="jobDetail">
			<ref bean="xxxjob" />
		</property> 
           <!--  cron表达式 -->
		<property name="cronExpression" >
			<!-- 每天的23:00:00执行 -->
			<value>0 0 23 * * ? *</value>
		</property>
	</bean> 

	<!-- quartz工厂类 -->
	<bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<property name="configLocation" value="classpath:quartz.properties" />
		<property name="dataSource" ref="dataSource"></property>
		<property name="quartzProperties">
			<map>
				<entry key="org.quartz.jobStore.isClustered" value="true" />
				<entry key="org.quartz.scheduler.instanceName" value="MyClusteredScheduler" />
				<entry key="org.quartz.scheduler.instanceId" value="AUTO" />
				<entry key="org.quartz.plugin.jobHistory.class" value="org.quartz.plugins.history.LoggingJobHistoryPlugin" />
			</map>
		</property>
		<property name="triggers">
			<list>
				<ref bean= "xxx" />
			</list>
		</property>
	</bean> 

posted @ 2019-08-19 11:09  进阶狂热者  阅读(358)  评论(0编辑  收藏  举报