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

猜你喜欢

转载自www.cnblogs.com/bradcai/p/11375886.html
今日推荐