spring中呼叫quartz要注意的問題
阿新 • • 發佈:2018-12-31
b、對每個任務也可能起多執行緒,但是需要對併發數量做控制,可以考慮使用commons-pools提供的物件池機制
7、在釋出的web工程的時候最好要把quartz裡的基礎包一起打包,要不回找不到一些類,基礎包在quartz-1.6.0/lib下
如果出現java.lang.NoClassDefFoundError: javax/transaction/UserTransaction. 那說明jta.jar沒有匯入classpath路徑
8、quartz中加入監聽器
quartz的監聽器有兩種,全域性監聽器和非全域性監聽器
--全域性監聽器即監聽全部的trigger或jobdetail的事件
scheduler.addGlobalJobListener(myJobListener);
--非全域性的顧名思義監聽某個trigger或jobdetail的事件 scheduler.addJobListener(myJobListener);
並且還要在我們要見的jobDetail類或trigger類中調用addJobListener()或addTriggerListener(),其中的輸入引數和listener類的getName()的返回的字串要一直,並且要唯一
spring中的配置如下
scheduler類
<bean id="scheduler"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref local="getMessageFormEduHallTrigger"/>
</list>
</property>
<property name="triggerListeners">
<list>
<ref local="systemUploadTaskListener"/>
</list>
</property>
</bean>
trigger類
<bean id="getMessageFormEduHallTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="getMessageFormEduHallJob"></property>
<property name="cronExpression" value="1 * * * * ?"></property>
<property name="triggerListenerNames">
<list>
<value>SystemUploadTaskListener</value>
</list>
</property>
</bean>
7、在釋出的web工程的時候最好要把quartz裡的基礎包一起打包,要不回找不到一些類,基礎包在quartz-1.6.0/lib下
如果出現java.lang.NoClassDefFoundError: javax/transaction/UserTransaction. 那說明jta.jar沒有匯入classpath路徑
8、quartz中加入監聽器
quartz的監聽器有兩種,全域性監聽器和非全域性監聽器
--全域性監聽器即監聽全部的trigger或jobdetail的事件
scheduler.addGlobalJobListener(myJobListener);
--非全域性的顧名思義監聽某個trigger或jobdetail的事件
並且還要在我們要見的jobDetail類或trigger類中調用addJobListener()或addTriggerListener(),其中的輸入引數和listener類的getName()的返回的字串要一直,並且要唯一
spring中的配置如下
scheduler類
<bean id="scheduler"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref local="getMessageFormEduHallTrigger"/>
</list>
</property>
<property name="triggerListeners">
<list>
<ref local="systemUploadTaskListener"/>
</list>
</property>
</bean>
trigger類
<bean id="getMessageFormEduHallTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="getMessageFormEduHallJob"></property>
<property name="cronExpression" value="1 * * * * ?"></property>
<property name="triggerListenerNames">
<list>
<value>SystemUploadTaskListener</value>
</list>
</property>
</bean>