quartz的一个demo
程序员文章站
2022-04-24 10:50:17
...
话不多说,直接codeing。
1.下载jar quartz-2.3.0.jar,我使用的是2.3.0,可以自行下载,也可到我百度云盘地址:quartz-2.3.0.jar,提取码:dpof
maven地址:
<!-- https://mvnrepository.com/artifact/org.quartz-scheduler/quartz -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.0</version>
</dependency>
2.新建实例Job,继承 Job,并实现方法:
package com.bstek.dorado.sample.quzrtz;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class HelloJob implements Job {
public void execute(JobExecutionContext arg0) throws JobExecutionException {
//打印当前的执行时间 格式 2019-01-23 00:00:00
Date date = new Date();
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("现在的时间是:"+ sf.format(date));
//具体的业务逻辑
System.out.println("业务逻辑...");
}
}
3.新建main执行(直接执行方式):
package com.bstek.dorado.sample.quzrtz;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.SimpleTrigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;
/**
*
* @类名称 HelloScheduler.java
* @类描述 <pre>触发类</pre>
* @作者 xingsfdz [email protected]
* @创建时间 2019-5-4 下午12:33:10
* @版本 1.00
*
* @修改记录
* <pre>
* 版本 修改人 修改日期 修改内容描述
* ----------------------------------------------
* 1.00 xingsfdz 2019-5-4
* ----------------------------------------------
* </pre>
*/
public class HelloScheduler {
public static void main(String[] args) throws SchedulerException {
//创建一个jobDetail的实例,将该实例与HelloJob Class绑定
JobDetail jobDetail = JobBuilder.newJob(HelloJob.class).withIdentity("myJob").build();
//创建一个Trigger触发器的实例,定义该job立即执行,并且每2秒执行一次,一直执行
SimpleTrigger trigger = TriggerBuilder.newTrigger().withIdentity("myTrigger").startNow().withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(2).repeatForever()).build();
//创建schedule实例
StdSchedulerFactory factory = new StdSchedulerFactory();
Scheduler scheduler = factory.getScheduler();
scheduler.start();
scheduler.scheduleJob(jobDetail,trigger);
}
}
3.新建main执行(使用cron定时器方式):String exeTime = "0 * * * * ? *";表达式表示每分钟的0秒执行
cron表达式生成以及解析地址引用:http://cron.qqe2.com/
package com.bstek.dorado.sample.quzrtz;
import org.quartz.CronScheduleBuilder;
import org.quartz.CronTrigger;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;
/**
*
* @类名称 CronScheduler.java
* @类描述 <pre>触发类</pre>
* @作者 xingsfdz [email protected]
* @创建时间 2019-5-4 下午12:41:02
* @版本 1.00
*
* @修改记录
* <pre>
* 版本 修改人 修改日期 修改内容描述
* ----------------------------------------------
* 1.00 xingsfdz 2019-5-4
* ----------------------------------------------
* </pre>
*/
public class CronScheduler {
public static void main(String[] args) throws SchedulerException, InterruptedException {
String exeTime = "0 * * * * ? *";
//jobDetail
JobDetail jobDetail = JobBuilder.newJob(HelloJob.class).withIdentity("cronJob").build();
//cronTrigger
CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity("cronTrigger").withSchedule(CronScheduleBuilder.cronSchedule(exeTime)).build();
StdSchedulerFactory stdSchedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = stdSchedulerFactory.getScheduler();
scheduler.start();
scheduler.scheduleJob(jobDetail,cronTrigger);
}
}
结果:
现在的时间是:2019-05-04 12:48:00
Hello Quartz
现在的时间是:2019-05-04 12:49:00
Hello Quartz
现在的时间是:2019-05-04 12:50:00
Hello Quartz
现在的时间是:2019-05-04 12:51:00
Hello Quartz
现在的时间是:2019-05-04 12:52:00
Hello Quartz
现在的时间是:2019-05-04 12:53:00
Hello Quartz
现在的时间是:2019-05-04 12:54:00
Hello Quartz
现在的时间是:2019-05-04 12:55:00
Hello Quartz
现在的时间是:2019-05-04 12:56:00
Hello Quartz
现在的时间是:2019-05-04 12:57:00
Hello Quartz
现在的时间是:2019-05-04 12:58:00
Hello Quartz
现在的时间是:2019-05-04 12:59:00
Hello Quartz
现在的时间是:2019-05-04 13:00:00
Hello Quartz
现在的时间是:2019-05-04 13:01:00
Hello Quartz
现在的时间是:2019-05-04 13:02:00
Hello Quartz
现在的时间是:2019-05-04 13:03:00
Hello Quartz
现在的时间是:2019-05-04 13:04:00
Hello Quartz
现在的时间是:2019-05-04 13:05:00
Hello Quartz
现在的时间是:2019-05-04 13:06:00
Hello Quartz
上一篇: Netty入门demo
下一篇: Java NIO学习(一)NIO相关概念