关于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>