原理现在我还没有太搞懂,可能是因为项目线程并发量太少导致。
解决方法:
<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无法开始执行。