Quartz快速入门
Quartz快速入门
org.quartz.scheduler.instanceName = MyScheduler---------scheduler的名字,随便起一个名字(还是起个有点意义的名字吧)
org.quartz.threadPool.threadCount= 3 --------线程池中最大线程数是3(最多三个job同时执行)
org.quartz.scheduler.skipUpdateCheck = true
---跳过Quartz的自动更新检查
1 import org.quartz.Scheduler; 2 import org.quartz.SchedulerException; 3 import org.quartz.impl.StdSchedulerFactory; 4 5 publicclassQuartzTest{ 6 7 publicstaticvoid main(String[] args){ 8 9 try{ 10 // Grab the Scheduler instance from the Factory 11 //初始化scheduler,官方文档使用的后面的内容,所有配置都是默认值,为了使用我们辛苦配置的配置文件,我们用前面的方法。 12 Scheduler scheduler = new StdSchedulerFactory("quartz.properties").getScheduler();//StdSchedulerFactory.getDefaultScheduler(); 13 14 // and start it off 15 scheduler.start(); 16 //---------------插入执行的代码-------------------------- 17 scheduler.shutdown(); 18 19 }catch(SchedulerException se){ 20 se.printStackTrace(); 21 } 22 } 23 }
(以上参考
http://quartz-scheduler.org/overview/quick-start)
1 import java.util.Date; 2 3 import org.apache.log4j.Logger; 4 import org.quartz.Job; 5 import org.quartz.JobExecutionContext; 6 import org.quartz.JobExecutionException; 7 8 public class JobTest implements Job{ 9 10 private static Logger logger = Logger.getLogger(JobTest.class); 11 12 public void execute(JobExecutionContext arg0) throws JobExecutionException { 13 logger.info("Hello world-----myQuartz-------class:JobTest method:execute" + new Date()); 14 15 } 16 17 } 18 然后,在第4步-----插入执行的代码-------的位置插入以下代码 19 try { 20 //定义一个任务,并绑定JobTest(自己创建的任务类) 21 JobBuilder jobBuilder = JobBuilder.newJob(JobTest.class); 22 jobBuilder.withIdentity("Job1", "Group1"); 23 24 JobDetail job = jobBuilder.build(); 25 //定义一个触发任务执行的触发器 26 TriggerBuilder<Trigger> triggerBuilder = TriggerBuilder.newTrigger(); 27 triggerBuilder.withIdentity("Trigger1", "TriggerGroup1"); 28 //定义执行时间 29 Date runTime = DateBuilder.evenSecondDate(new Date()); 30 31 triggerBuilder.startAt(runTime); 32 triggerBuilder.withSchedule(SimpleScheduleBuilder.simpleSchedule(). 33 withIntervalInMilliseconds(10000).repeatForever()); 34 35 Trigger trigger = triggerBuilder.build(); 36 37 scheduler.scheduleJob(job, trigger); 38 logger.info(job.getKey() + " will run at...: " + runTime); 39 scheduler.start(); 40 logger.info("------- Started Scheduler -----------------"); 41 42 logger.info("------- Waiting 65 seconds... -------------"); 43 try { 44 Thread.sleep(65000); 45 } catch (InterruptedException e) { 46 e.printStackTrace(); 47 } 48 logger.info("------- Shutting Down ---------------------"); 49 scheduler.shutdown(); 50 logger.info("------- Shutdown Complete -----------------"); 51 } catch (SchedulerException e) { 52 e.printStackTrace(); 53 }
View Code
1 import java.util.Date; 2 3 import org.quartz.Job; 4 import org.quartz.JobBuilder; 5 import org.quartz.JobDetail; 6 import org.quartz.Scheduler; 7 import org.quartz.SchedulerException; 8 import org.quartz.SimpleScheduleBuilder; 9 import org.quartz.Trigger; 10 import org.quartz.TriggerBuilder; 11 import org.quartz.impl.StdSchedulerFactory; 12 13 /** 14 * 定时任务工具类 15 * @author llhua 16 * 17 */ 18 public class TaskUtil { 19 /** 20 * 初始化一个全部默认配置的scheduler 21 * @return 22 * @throws SchedulerException 23 */ 24 public static Scheduler getDefaultScheduler() throws SchedulerException{ 25 return StdSchedulerFactory.getDefaultScheduler(); 26 } 27 28 /** 29 * 初始化一个通过配置文件配置的配置的scheduler 30 * @return 31 * @throws SchedulerException 32 */ 33 public static Scheduler getScheduler(String confFile) throws SchedulerException{ 34 return new StdSchedulerFactory(confFile).getScheduler(); 35 } 36 37 /** 38 * 定义一个job 39 * @param jobClazz 40 * @param name 41 * @param group 42 * @return 43 */ 44 public static JobDetail getJob(Class<? extends Job> jobClazz, String name, String group){ 45 return JobBuilder.newJob(jobClazz).withIdentity(name, group).build(); 46 } 47 48 /** 49 * 定义一个立即开始的触发器(.startNow()) 50 * @param schedBuilder 51 * @param name 52 * @param group 53 * @return 54 * 55 * SimpleScheduleBuilder一般用法 56 * SimpleScheduleBuilder.simpleSchedule(). 57 withIntervalInMilliseconds(10000).repeatForever() 58 */ 59 public static Trigger getSimpleTrigger(SimpleScheduleBuilder schedBuilder, String name, String group){ 60 return TriggerBuilder.newTrigger().withIdentity(name, group).startNow().withSchedule(schedBuilder).build(); 61 } 62 /** 63 * 定义一个在指定时间开始的触发器(.startAt()) 64 * @param schedBuilder 65 * @param name 66 * @param group 67 * @return 68 */ 69 public static Trigger getSimpleTrigger(Date runTime, SimpleScheduleBuilder schedBuilder, String name, String group){ 70 return TriggerBuilder.newTrigger().withIdentity(name, group).startAt(runTime).withSchedule(schedBuilder).build(); 71 } 72 73 public static Trigger getCronTrigger(){ 74 return null; 75 } 76 77 public static Trigger getNthIncludedDayTrigger(){ 78 return null; 79 } 80 81 }
View Code
转载于:https://www.cnblogs.com/llhua/p/3393306.html
Quartz快速入门相关推荐
- Java任务调度之Quartz快速入门
首先所谓的任务调度指的是软件系统在从某个时间节点开始,以固定的频率,除去特定的某些时间段,定期执行某项任务,比如可以在某个夜深人静的时候做一些大批量的文件传输.备份等耗费极大资源的工作,那么通过这个概 ...
- Quartz 快速入门案例,看这一篇就够了
前言 Quartz 是基于 Java 实现的任务调度框架,对任务的创建.修改.删除.触发以及监控这些操作直接提供了 api,这意味着开发人员拥有最大的操作权,也带来了更高的灵活性. 什么是任务调度? ...
- Quartz教程:快速入门
本系列教程由quartz-2.2.x官方文档翻译.整理而来,希望给同样对quartz感兴趣的朋友一些参考和帮助,有任何不当或错误之处,欢迎指正:有兴趣研究源码的同学,可以参考我对quartz-core ...
- Quartz 框架快速入门(二)
尽可能的用声明式处理软件配置,其次才考虑编程式的方式.在上一篇<Quartz 框架快速入门(一)>中,如果我们要在 Job 启动之后改变它的执行时间和频度,必须去修改源代码重新编译.这种方 ...
- Quartz-任务调度概述及Quartz(2.2.X)快速入门
文章目录 概述 Quartz 概述 Quartz 基础结构 Job JobDetail Trigger Calendar Scheduler ThreadPool 注意 快速入门 Quartz(2.2 ...
- Quartz 框架快速入门(四)
Spring的scheduling.quartz包中对Quartz框架进行了封装,使得开发时不用写任何QuartSpring的代码就可以实现定时任务.Spring通过JobDetailBean,Met ...
- Quartz 框架快速入门(三)
在前面两篇文章中简单介绍了在java应用程序中如何使用Quartz框架,这一篇中我们将看到如何在web环境下通过配置文件来完成Quartz的后台作业调度,而不必手工去创建Trigger和Schedul ...
- Quartz.NET快速入门指南
最近,在工作中遇到了 Quartz.net 这个组件,为了更好的理解项目代码的来龙去脉,于是决定好好的研究一下这个东西.确实是好东西,既然是好东西,我就拿出来分享一下.万丈高楼平地起,我们也从入门开始 ...
- Spring Schedule定时关单快速入门
首先讲一下Spring Schedule的一个介绍,然后是Spring Schedule的一个快速入门,这里面我们会列一个表格,然后领着大家来看一下,然后是Spring Schedule Cron的生 ...
最新文章
- iOS 11开发教程(二)编写第一个iOS 11应用
- 南开大学2014年高等代数部分试题解答
- Apache Hook机制解析(下)——实战:在自己的代码中使用Apache的钩子
- JAVA设计模式详解(六)----------状态模式
- 为什么大数据需要数据湖?
- 【Python 2 到 3 系列】 print 是函数
- update yum 到指定版本_linux yum安装指定版本mysql或php
- 51nod 1632 B君的连通
- matlab mat文件 太大,MATLAB .mat文件中的开销过大
- git pull VS git fetchmerge(good)
- python基础篇 —— 类
- 获取并反编译微信小程序源码(仅供学习)
- STM32控制SG90舵机与超声波HC_SR04测距模块
- kuka机器人码垛编程网盘_kuka机器人循环指令码垛编程探索
- Android 全仿To圈儿录音界面实现
- 易基因 | 精准医学:DNA甲基化图谱在发现和精确诊断神经肿瘤领域的应用
- 用Python批处理将WORD文件转换成PDF格式(工具:win32com模块)
- 2020年Apple的UWB技术产品资料整理
- 中国尼龙搭扣市场趋势报告、技术动态创新及市场预测
- 计算机毕业设计(附源码)python学生社团管理
热门文章
- java 空间复杂度_时间复杂度和空间复杂度
- java解码base64的png图片_使用PHP对图片进行base64编码和解码(png、jpg,声音、视频)...
- 思科交换机Vlan配置以及VLAN应用场景
- oracle中匹配函数怎么用,ORACLE 使用正则表达式的函数
- 拦截锚点修改url_前端系列课程(2)-网络基础概念(URL)
- docker 安装nginx_使用 Docker 在你的 mac 上搭建个服务器
- seaborn常用图
- kaggle和colab入门
- java jdom格式_Java全面解析XML格式串(JDOM解析)
- mkfontscale没有这个命令_那些实用的小命令