Spring quartz定時器不報錯,但不執行
阿新 • • 發佈:2019-02-06
原理現在我還沒有太搞懂,可能是因為專案執行緒併發量太少導致。
解決方法:
<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無法開始執行。