Quartz 定时器任务调度
生活随笔
收集整理的這篇文章主要介紹了
Quartz 定时器任务调度
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Job:是一個接口只有一個方法void execute(JobExecutionContext context),開發者實現該接口定義運行任務,JobExecutionContext類提供了調度上下文的各種信息。Job運行時的信息保存在 JobDataMap實例中
第一種,作業類繼承自特定的基? 1.8測試成功,2.0不行類:org.springframework.scheduling.quartz.QuartzJobBean。
java類代碼
package?com.ncs.hj;??import?java.util.Date;import?org.quartz.JobExecutionContext;?? import?org.quartz.JobExecutionException;?? import?org.springframework.scheduling.quartz.QuartzJobBean;??public?class?SpringQtz?extends?QuartzJobBean{??private?static?int?counter?=?0;??protected?void?executeInternal(JobExecutionContext?context)?throws?JobExecutionException?{??System.out.println(Thread.currentThread().getName());long?ms?=?System.currentTimeMillis();??System.out.println(?new?Date(ms));??System.out.println(ms);??System.out.println("("?+?counter++?+?")");??String?s?=?(String)?context.getMergedJobDataMap().get("service");??System.out.println(s);??}?? }spring配置文件
第二種,作業類不繼承特定基類。1.8和2.0均測試成功, spring 4以上版本
java類
????package?com.ncs.hj;??import?java.util.Date;??public?class?SpringQtz2?{??private?static?int?counter?=?0;??protected?void?execute()??{??System.out.println(Thread.currentThread().getName());long?ms?=?System.currentTimeMillis();??System.out.println(?new?Date(ms));??System.out.println("("?+?counter++?+?")");??}??}配置文件
<?xml?version="1.0"?encoding="UTF-8"?> <beans?xmlns="http://www.springframework.org/schema/beans"?xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:task="http://www.springframework.org/schema/task"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans?http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context?http://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/task?http://www.springframework.org/schema/task/spring-task-3.0.xsdhttp://www.springframework.org/schema/tx?http://www.springframework.org/schema/tx/spring-tx-3.0.xsdhttp://www.springframework.org/schema/aop?http://www.springframework.org/schema/aop/spring-aop-3.0.xsdhttp://www.springframework.org/schema/mvc?http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"default-autowire="byName"?default-lazy-init="false"><!--?需要定時執行的類?--><bean?id="linkConsumeController"?class="com.jikexueyuancrm.controller.LinkConsumeController"/><!--?配置job,類中每個方法對應一個job??--><bean?id="consumeJob"?class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"><property?name="targetObject"??ref?="linkConsumeController"/><property?name="targetMethod"???value="consume"?/>?<!--要執行的方法名稱?--><!--禁止并發???--><!--?是否允許任務并發執行。當值為false時,表示必須等到前一個線程處理完畢后才再啟一個新的線程?-->?<property?name="concurrent"?value="false??"/>?</bean><!--?每個job需要單獨配置任務的定時執行(觸發器)????CronTriggerFactoryBean或者SimpleTriggerFactoryBean?--><bean?id="consumeTimer"?class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"><property?name="jobDetail"?ref="consumeJob"></property>???<!--對應job?--><property?name="cronExpression"?value="0/5?*?*?*?*??"></property></bean><!--?最終的啟動工廠???list里面配置多個定時觸發器--><bean?id="SpringJobSchedulerFactoryBean"?class="org.springframework.scheduling.quartz.SchedulerFactoryBean"><property?name="triggers"><list><ref?bean="consumeTimer"/></list></property></bean></beans>quartz默認是多線程的
定時任務的注解配置可參考這篇文章:
http://blog.csdn.net/xpsharp/article/details/8189212
參考文章:
http://my.oschina.net/u/559635/blog/389558
http://kevin19900306.iteye.com/blog/1397744
http://blog.csdn.net/huihuimimi17/article/details/8215779
轉載于:https://blog.51cto.com/tianxingzhe/1741169
總結
以上是生活随笔為你收集整理的Quartz 定时器任务调度的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【HDOJ】3948 The Numbe
- 下一篇: javaweb入门笔记(4)-reque