Quartz调度简单案例:
前期准备
导入Quartz到项目中,本人是 用的Maven,代码如下
<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.1</version> </dependency>
下载地址如下所示:http://www.quartz-scheduler.org/downloads Maven
1、定义Job工作类
package com.timerBin.quartz.simple; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; public class SimpleJob implements Job { private static int i=0; @Override public void execute(JobExecutionContext job) throws JobExecutionException { try { System.err.println("开始:"+i); i++; } catch (Exception e) { e.printStackTrace(); } } }
2、简单例子调用Quartz(最基础调用)
package com.timerBin.quartz.simple; import java.util.Date; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.impl.JobDetailImpl; import org.quartz.impl.StdSchedulerFactory; import org.quartz.impl.triggers.SimpleTriggerImpl; public class SimpleQuartz { public static void main(String[] args) { runQuartz(); } public static void runQuartz(){ try { //定义任务 分组名称信息 分组名 如果不设置分组名 是默认分组Default JobDetail jobDetail = new JobDetailImpl("myJobName","myJobGroupName", SimpleJob.class); //定义调度触发器 SimpleTriggerImpl strigger = new SimpleTriggerImpl("myTiggerName"); //触发器 从当前时间开始 strigger.setStartTime(new Date()); //调用10次 strigger.setRepeatCount(10); //每隔2000毫秒 strigger.setRepeatInterval(2000); //定义调度 Scheduler scheudle = new StdSchedulerFactory().getScheduler(); scheudle.scheduleJob(jobDetail, strigger); //调度启动 scheudle.start(); Thread.currentThread().sleep(1000); //调度关闭 System.err.println("关闭 "); scheudle.shutdown(); } catch (Exception e) { e.printStackTrace(); } } }
3、包含日历的Quartz简单调用例子
package com.timerBin.quartz.simple; import java.util.GregorianCalendar; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.impl.JobDetailImpl; import org.quartz.impl.StdSchedulerFactory; import org.quartz.impl.calendar.AnnualCalendar; import org.quartz.impl.triggers.SimpleTriggerImpl; public class SimpleQuartz { public static void main(String[] args) { runQuartz(); } public static void runQuartz(){ try { //定义任务 分组名称信息 分组名 如果不设置分组名 是默认分组Default JobDetail jobDetail = new JobDetailImpl("myJobName","myJobGroupName", SimpleJob.class); //定义日历集合 AnnualCalendar holidays = new AnnualCalendar(); //定义日历 默认获得当前时间 也可以根据构造方法定义 GregorianCalendar calendar = new GregorianCalendar(); //calendar.set(1, 2015); 年 //calendar.set(2, 1); 月 //calendar.set(5, 14); 日 //将日志添加到几何中 false 不排除 true 排除 holidays.setDayExcluded(calendar, false); //定义调度 Scheduler scheudle = new StdSchedulerFactory().getScheduler(); scheudle.addCalendar("myCalendars", holidays, false, false); //定义调度触发器 SimpleTriggerImpl strigger = new SimpleTriggerImpl("myTiggerName"); //将日历添加到调度 strigger.setCalendarName("myCalendars"); //触发器 从日历中的当前时间开始 strigger.setStartTime(calendar.getTime()); //调用10次 strigger.setRepeatCount(10); //每隔2000毫秒 strigger.setRepeatInterval(2000); scheudle.scheduleJob(jobDetail, strigger); //调度启动 scheudle.start(); Thread.currentThread().sleep(1000); //调度关闭 System.err.println("关闭 "); scheudle.shutdown(); } catch (Exception e) { e.printStackTrace(); } } }
4、将调度任务状态信息保存到数据库
1)下载调度数据库表结构
所在路径:quartz-2.2.1\docs\dbTables\xxxx.sql
2)在相应数据库中执行sql文件
3)在项目的src路径下创建quartz.properties文件,内容可如下所示(Mysql):
org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX org.quartz.jobStore.tablePrefix=QRTZ_ org.quartz.jobStore.dataSource=mySource org.quartz.dataSource.mySource.driver=com.mysql.jdbc.Driver org.quartz.dataSource.mySource.URL=jdbc:mysql://xxx.xxx.xxx.xxx:3306/test org.quartz.dataSource.mySource.user=root org.quartz.dataSource.mySource.password=root1234 org.quartz.dataSource.mySource.maxConnections=10 org.quartz.threadPool.threadCount=1
package com.timerBin.quartz.simple; import java.util.List; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.impl.StdSchedulerFactory; import org.quartz.JobKey; public class SimpleDbQuartz { public static void main(String[] args) { runDbQuartz(); } public static void runDbQuartz(){ try { //定义调度 Scheduler scheudle = new StdSchedulerFactory().getScheduler(); //获取所有调度的名称 List<String> list = scheudle.getJobGroupNames(); for(int i=0;i<list.size();i++){ //根据所有调度名称回复调度 scheudle.resumeJob(new JobKey(list.get(i))); } //开始调度 scheudle.start(); } catch (SchedulerException e) { e.printStackTrace(); } } }
5、在Spring中集成Quartz
相关推荐
quartz简单实例quartz简单实例quartz简单实例quartz简单实例
spring-quartz简单实例 简单的quartz定时任务实例代码
一个spring quartz的定时任务,放到tomcat下就可以看到后台打印了
本实例是对Quartz框架的简单使用,下载解压后放在tomcat中部署起来就可以运行了,在applicationContext.xml配置文件中配置了定时的时间,自己也可以更改调度时间,初学者可以看看,希望能帮助到您。
一个简单的quartz小例子,还不是很全,只有简单的实现。
quartz的简单例子和API
四个Quartz的简单的例子,开发环境STS+Maven,拿来就可以用,可以作为入门学习;
基于java的Quartz的实例,直接导入MyEclipse中就能用,可以把引入的java.SQL及用到的东西删除掉
根据网上的教程,做了一个最简单的quartz.net运行例子,即每隔几秒向txt中写入数据: 2015-05-10 20:14:43.397 : 【HelloJob Executed】 **** Job group1.myJob fired @ Sun, 10 May 2015 12:14:43 GMT next ...
待完善。简单的例子,免费下载。参考http://www.meiriyouke.net/?p=82 谢谢原作者 也谢谢ZJ
Quartz的一个简单实例 ...................
文件里面包括 1:Quartz开发指南.pdf 2:Quartz从入门到进阶.pdf 3:QuartzBeginnerExample一个附带的工程例子 4:quartz-1.6.1.zip Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它...
Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的...
spring+quartz定时小例子,架包+文档 我自己整理的
博文链接:https://zhisheng00.iteye.com/blog/177259
博文链接:https://changsha-i9.iteye.com/blog/81112
C# 使用Quartz.NET作业调度的简单Windows服务事例。
Spring2.5+Quartz定时任务简单例子web工程 myeclipse 项目开发的,可直接导入运行
springboot与quartz集成的最简单实例,可以实现定时任务的动态处理,解决job注入空指针的问题
Quartz的最简使用说明,用了两个Job,添加了14个Trigger。一个例子你就明白怎么使用的了~