乐途乐途
主页
  • 计算机基础

    • TCP/IP
    • Linux
    • HTTP
  • 数据库

    • SQL
    • MySQL 5.7
  • 编程语言

    • C
    • C++
    • Java SE
    • Python2
    • Python3
  • 数据格式

    • JSON
    • XML
  • 认证与安全

    • JWT
  • 工具

    • Markdown
  • Git

    • GitFlow
  • Quartz

    • Quartz
  • Java

    • Maven 入门
    • Maven 进阶
    • MyBatis
    • Spring
    • Spring MVC
  • Java

    • Spring Boot
    • Spring Cloud
    • Spring Cloud Alibaba
    • Spring Security
    • Spring AI
    • Spring Batch
    • Kafka
    • Java 设计模式
  • 缓存

    • Redis
  • 搜索引擎

    • Elasticsearch
  • 分布式协调

    • ZooKeeper
联系
阿里云
主页
  • 计算机基础

    • TCP/IP
    • Linux
    • HTTP
  • 数据库

    • SQL
    • MySQL 5.7
  • 编程语言

    • C
    • C++
    • Java SE
    • Python2
    • Python3
  • 数据格式

    • JSON
    • XML
  • 认证与安全

    • JWT
  • 工具

    • Markdown
  • Git

    • GitFlow
  • Quartz

    • Quartz
  • Java

    • Maven 入门
    • Maven 进阶
    • MyBatis
    • Spring
    • Spring MVC
  • Java

    • Spring Boot
    • Spring Cloud
    • Spring Cloud Alibaba
    • Spring Security
    • Spring AI
    • Spring Batch
    • Kafka
    • Java 设计模式
  • 缓存

    • Redis
  • 搜索引擎

    • Elasticsearch
  • 分布式协调

    • ZooKeeper
联系
阿里云
  • 前言

    • 起步
  • 第1章 快速入门指南

    • 下载和安装
    • 配置
    • 运行一个简单的应用
  • 第2章 Quartz教程

    • 使用Quartz
    • Quartz API、作业和触发器
    • 更多关于作业和作业详细信息
    • 更多关于触发器
    • 简单触发器
    • Cron触发器
    • 触发器监听器和作业监听器
    • 调度程序监听器
    • 作业存储JobStore
    • 配置、资源使用和调度器工厂
    • 高级(企业)功能
    • Quartz的其他特征
    • 专题之Corn触发器教程
  • 第3章 15个官网示例

    • 概览
    • 示例1 - 你的第一个Quartz程序
    • 示例2 - 简单触发器
    • 示例3 - Cron触发器
    • 示例4 - 作业状态和参数
    • 示例5 - 处理作业失误
    • 示例6 - 处理作业异常
    • 示例7 - 中断作业
    • 示例8 - 日历带来的乐趣
    • 示例9 - 作业监听器
    • 示例10 - 使用Quartz插件
    • 示例11 - 高负载下的Quartz
    • 示例12 - 使用RMI的远程作业调度
    • 示例13 - 集群化的Quartz
    • 示例14 - 触发器优先级
    • 示例15 - TC集群化的Quartz

使用Quartz

在使用调度程序之前,它需要被实例化。为此,您可以使用SchedulerFactory。Quartz的一些用户可能会将工厂的实例保存在JNDI存储中,其他用户可能会发现直接实例化和使用工厂实例同样容易(或更容易)(例如下面的示例)。

一旦调度程序被实例化,它就可以启动、置于待机模式以及关闭。请注意,一旦计划程序关闭,就不能在不重新实例化的情况下重新启动它。在调度程序启动之前,或者在它处于暂停状态时,触发器不会启动(作业不会执行)。

下面是一段简短的代码,它实例化并启动调度器,并安排作业执行:

  SchedulerFactory schedFact = new org.quartz.impl.StdSchedulerFactory();

  Scheduler sched = schedFact.getScheduler();

  sched.start();

  //定义作业并将它绑定到我们的HelloJob.class这个类中
  JobDetail job = newJob(HelloJob.class)
      .withIdentity("myJob", "group1")
      .build();

  //设置作业每40秒运行一次
  Trigger trigger = newTrigger()
      .withIdentity("myTrigger", "group1")
      .startNow()
      .withSchedule(simpleSchedule()
          .withIntervalInSeconds(40)
          .repeatForever())
      .build();

  //通知Quartz使用我们的触发器安排该工作
  sched.scheduleJob(job, trigger);

如您所见,使用Quartz非常简单。在第2课中,我们将快速概述作业和触发器以及Quartz的API,以便您能够更全面地理解这个示例。

下一页
Quartz API、作业和触发器