生産環境の一部のタイミングタスクが起動していない問題を解決します.

1550 ワード

1.最近の生産環境問題が多く、サービスエンドの接続池、コネクタの接続プールが各種漏洩し、警報を監視し、かつ、quartzの一部のタイミングタスクも最近問題が発生しました.
一部のquartzタイミングタスクが起動していません.
タイミングタスク:

	<!--             lazy-init='false'               -->
	<bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<property name="triggers">
			<list>
				<ref bean="pushRouteTrigger"/>
				<ref bean="sendJcIm1Time" />
				<ref bean="sendJcIm2Time" />
				<ref bean="sendCloseOrderTime" /> 
				<ref bean="sendOrderTime" /> 
				<ref bean="sendWayBillTime" />
				<ref bean="receiveBackInfoByMftNoTime" />
				<ref bean="sendPayConfirmTime" />
				<ref bean="sendProductIdTime" />			
				<ref bean="sendAccountBuyerTime" />
			</list>        
		</property>
		<property name="taskExecutor" ref="executor" />
	</bean>

この問題は簡単に検査できます.spring統合quartzのソースコードを追跡すればいいです.
環境準備:ideaはeclipseプロジェクトを導入して、springソースのjarバッグに関連して調整できます.(ideaで生産問題を調整するのは初めてです.いい感じです.)
Scheduler FactoryBen類のafterPropertiesset()方式を調整することによって最終的に問題が発見されました.XML設定ファイルの中に「startQuertz」のScheduler FactoryBenが二つあります.  一つのFactoryBeanを初期化したら、もう一つは初期化しないです.springはデフォルトは一例ですから.これはあなたの妹、完全に誰かがコードを乱してコピーした結果です.