quartz任務排程框架實現任務定時執行,不傳參的配置(一)
阿新 • • 發佈:2018-12-25
quartz是一個任務排程框架,可以用它來實現一些需要定時執行的任務。
本次實現的是spring配置整合quartz
1.配置如下:目標bean和bean中的方法需要自己定義,這個方法就是要執行的job(定時執行)
<!--使用MethodInvokingJobDetailFactoryBean,任務類可以不實現Job介面,通過targetMethod指定呼叫方法--> <!-- 定義目標bean和bean中的方法 --> <bean id="SpringQtzJob" class="cn.thinkjoy.LawDataForExcel.quartz.QuartzApplication"/> <bean id="SpringQtzJobMethod" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" lazy-init="true"> <property name="targetObject"> <ref bean="SpringQtzJob"/> </property> <property name="targetMethod"> <value>execute</value> </property> <!-- 同一任務在前一次執行未完成而Trigger時間又到時是否併發開始新的執行, 預設為true. --> <property name="concurrent" value="false"/> </bean>
<!--排程觸發器 克隆表示式可以包括7個欄位:秒、分、小時、月內日期、月、周內日期、年(可選欄位) 每天下午5點半執行一次 0 30 17 * * ? * 0 */1 * * * ? --> <bean id="CronTriggerBean" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <property name="jobDetail" ref="SpringQtzJobMethod"/> <property name="cronExpression" value="0 30 17 * * ? *"/> </bean> <!--排程工廠--> <bean id="SpringJobSchedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="CronTriggerBean"/> </list> </property> </bean>
在main方法裡呼叫
ApplicationContext context = new
ClassPathXmlApplicationContext("classpath*:spring/spring.xml");
Scheduler scheduler= (StdScheduler) context.getBean("SpringJobSchedulerFactoryBean");
scheduler.start();