java中定時JOB的實現方式
阿新 • • 發佈:2019-01-30
23.2.3. 使用triggers和SchedulerFactoryBean來包裝任務
我們已經建立了job details,jobs。我們同時回顧了允許你呼叫特定物件上某一個方法的便捷的bean。 當然我們仍需要排程這些jobs。這需要使用triggers和SchedulerFactoryBean來完成。 Quartz自帶一些可供使用的triggers。Spring提供兩個子類triggers,分別為CronTriggerBean和SimpleTriggerBean。
Triggers也需要被排程。Spring提供SchedulerFactoryBean來暴露一些屬性來設定triggers。SchedulerFactoryBean 負責排程那些實際的triggers。
幾個例子:
<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean"> <!-- see the example of method invoking job above --> <property name="jobDetail" ref="jobDetail" /> <!-- 10 seconds --> <property name="startDelay" value="10000" /> <!-- repeat every 50 seconds --> <property name="repeatInterval" value="50000" /></bean><bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="exampleJob" /> <!-- run every morning at 6 AM --> <property name="cronExpression" value="0 0 6 * * ?" /></bean>
現在我們建立了兩個triggers,其中一個開始延遲10秒以後每50秒執行一次,另一個每天早上6點鐘執行。 我們需要建立一個SchedulerFactoryBean來最終實現上述的一切:
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="cronTrigger" /> <ref bean="simpleTrigger" /> </list> </property></bean>