1. 程式人生 > >Spring quartz定時器不報錯,但不執行

Spring quartz定時器不報錯,但不執行

原理現在我還沒有太搞懂,可能是因為專案執行緒併發量太少導致。

解決方法:

<bean id="helloJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		    <property name="targetObject" ref="helloTask"/>
		    <property name="targetMethod" value="service"/>
		    <property name="concurrent" value="false"/>
		</bean>
		

在配置FactoryBean時,加入最後一行配置資訊,把不用併發到job禁止併發執行

然後

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
	    <property name="triggers">
	        <list>
	            <ref bean="cronTrigger1"/>
	        </list>
	    </property>
	    <property name="quartzProperties">
	    	<props>
	        	<prop key="org.quartz.threadPool.threadCount">50</prop>
	        </props>
	    </property>
</bean>

改變執行緒池的執行緒數量,這裡我改成了50,這樣就不會存在過多短時間週期內大量未結束的job導致執行緒用完,新的job無法開始執行。