quartz之Hello

来源:互联网 发布:淘宝账号登陆不了 编辑:程序博客网 时间:2024/06/07 05:53

Quartz 任务调度框架

1.quartz的使用

quart的官网

quartz的介绍

quartz的介绍

Quartz就是启动定时任务的框架
官网: http://www.quartz-scheduler.org/

下载框架文件结构如下
这里写图片描述

2.Quartz的快速入门

2.1 首先建立一个maven项目2.2 导入quartz坐标
<!-- 定时框架 -->    <dependency>        <groupId>org.quartz-scheduler</groupId>        <artifactId>quartz</artifactId>        <version>2.2.1</version>    </dependency>    <dependency>        <groupId>org.quartz-scheduler</groupId>        <artifactId>quartz-jobs</artifactId>        <version>2.2.1</version>    </dependency>
2.3  入门案例:

http://www.quartz-scheduler.org/documentation/quartz-2.1.x/quick-start.html

案例一
import org.quartz.Scheduler;import org.quartz.SchedulerException;import org.quartz.impl.StdSchedulerFactory;public class QuartzTest {    public static void main(String[] args) throws SchedulerException {        // 定时器对象        Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();        // 开启定时任务        scheduler.start();        // 关闭定时任务        scheduler.shutdown();    }}
案例二:SimpleTrigger使用    必须掌握JobDetail和Trigger两个对象        Job工作任务,你要做什么        Trigger 执行工作任务 触发条件,什么时间执行,多久执行一次    编写工作任务
import org.quartz.Job;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;public class HelloJob implements Job {    public void execute(JobExecutionContext context) throws JobExecutionException {    System.out.println("Hello,Quartz!!------");    }}

编写定时任务代码

import org.quartz.JobBuilder;import org.quartz.JobDetail;import org.quartz.Scheduler;import org.quartz.SchedulerException;import org.quartz.SimpleScheduleBuilder;import org.quartz.Trigger;import org.quartz.TriggerBuilder;import org.quartz.impl.StdSchedulerFactory;public class HelloJobFactory {    public static void main(String[] args) throws SchedulerException {        // 定时器对象        Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();        // 定义一个工作对象        JobDetail jobDetail = JobBuilder.newJob(HelloJob.class).withIdentity("job1", "group1").build();        // 定义触发器        Trigger trigger = TriggerBuilder.newTrigger()    .withIdentity("trigger1", "group1").startNow()          .withSchedule(SimpleScheduleBuilder.repeatSecondlyForever(5)).build();        scheduler.scheduleJob(jobDetail, trigger);        // 开启定时任务        scheduler.start();    }}

对象 TriggerBuilder 启动任务时间
startNow 立即启动
startAt (Date) 指定时间启动
对象 SimpleScheduleBuilder 进行简单任务重复执行
repeatSecondly …() 多少秒后重复执行
repeatminutely …() 多少分钟后重复执行
repeatHourly …() 多少小时后重复执行

案例三:CronTrigger的使用
这里写图片描述
这里写图片描述

    // 定义触发器    Trigger trigger = TriggerBuilder.newTrigger()                .withIdentity("trigger1", "group1").startNow()                .withSchedule(CronScheduleBuilder.cronSchedule("30/3 7 19 ? * *"))                .build();

上面是每月的每周每一天19点7分30秒,每隔3秒执行一次
day-of-month (第四个)和 day-of-week(最后一个) 只能设置一个值,另一个值写 ?