1. 程式人生 > >spring中呼叫quartz要注意的問題

spring中呼叫quartz要注意的問題

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>