日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Quartz 定时器任务调度

發布時間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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配置文件


<?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"><!--??配置調度程序quartz?,其中配置JobDetail有兩種方式??方式一:使用JobDetailBean,任務類必須實現Job接口????--><bean?id="myjob"?class="org.springframework.scheduling.quartz.JobDetailBean">??<property?name="jobClass"?value="com.ncs.hj.SpringQtz"></property>?<property?name="jobDataAsMap"><map><entry?key="service"><value>simple?is?the?beat</value></entry></map></property></bean>?<!--?========================?調度觸發器?========================?--><bean?id="CronTriggerBean"?class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"><property?name="jobDetail"?ref="myjob"></property><property?name="cronExpression"?value="0/5?*?*?*?*??"></property></bean><!--?========================?調度工廠?========================?--><bean?id="SpringJobSchedulerFactoryBean"?class="org.springframework.scheduling.quartz.SchedulerFactoryBean"><property?name="triggers"><list><ref?bean="CronTriggerBean"/></list></property></bean>??</beans>




第二種,作業類不繼承特定基類。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 定时器任务调度的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。