Quartz 调度器

2019-05-07  本文已影响0人  潜心之力
一、简介

Quartz是一个开源作业调度框架,框架的核心是调度器,调度器负责管理Quartz应用运行时环境,调度器不是靠自己做所有的工作,而是依赖框架内一些非常重要的部件,Quartz不仅仅是线程和线程管理,为确保可伸缩性,Quartz采用了基于多线程的架构,启动时,框架初始化一套worker线程,这套线程被调度器用来执行预定的作业,这就是Quartz怎样能并发运行多个作业的原理,Quartz依赖一套松耦合的线程池管理部件来管理线程环境。

MAVEN仓库:https://mvnrepository.com

<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.3.0</version>
</dependency>
二、使用示例
JobDetail detail = JobBuilder
        .newJob(OceanJob.class)
        .withIdentity("key")
        .build(); -> 任务

SimpleScheduleBuilder builder = SimpleScheduleBuilder
        .simpleSchedule()
        .withIntervalInSeconds(2)
        .repeatForever(); -> 定时器

SimpleTrigger trigger = TriggerBuilder
        .newTrigger()
        .withIdentity("trigger")
        .startNow()
        .withSchedule(builder)
        .build(); -> 触发器

StdSchedulerFactory factory = new StdSchedulerFactory(); -> 调度工厂
Scheduler scheduler = factory.getScheduler(); -> 调度器
scheduler.scheduleJob(detail,trigger); -> 组装组件
scheduler.start(); -> 启动调度器

JobKey jobKey = new JobKey("key");
scheduler.deleteJob(jobKey); -> 通过身份标识移除指定任务
三、CronTrigger

IDEA:鼠标左键选中接口类名,ctrl+alt+B,查看接口实现类
格式: [秒] [分] [时] [日] [月] [周] [年]

说明 必填 允许值 通配符
0~59 , - * /
0~59 , - * /
0~23 , - * /
1~31 , - * ? / L W
1~12 或 JAN~DEC , - * /
1~7 或 SUN~SAT , - * ? / L #
1970~? 或 empty , - * /
通配符 说明
* 所有值
不指定值
- 区间,表示范围
, 允许多个值
L LAST,表示最后
W 离目标日期最近的工作日
CronScheduleBuilder builder = CronScheduleBuilder.cronSchedule("* * * * * ?");
CronTrigger trigger = TriggerBuilder.newTrigger()
        .withIdentity("cron")
        .withSchedule(cronScheduleBuilder)
        .build();
上一篇下一篇

猜你喜欢

热点阅读