美文网首页
Quartz 调度器

Quartz 调度器

作者: 潜心之力 | 来源:发表于2019-05-07 13:44 被阅读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();
    

    相关文章

      网友评论

          本文标题:Quartz 调度器

          本文链接:https://www.haomeiwen.com/subject/hxleoqtx.html