Quartz使用

发布时间 2023-04-06 23:35:53作者: Bingmous

官网:http://www.quartz-scheduler.org/

快速使用

官方文档:http://www.quartz-scheduler.org/documentation/quartz-2.3.0/quick-start.html

  • 引入依赖:
        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>2.3.2</version>
        </dependency>
  • 定义job
  • 定义触发器
  • 让quartz使用trigger调度job
public class QuartzTest {
    private static final Logger log = LoggerFactory.getLogger(QuartzTest.class);
    public static void main(String[] args) {
        try {
            //获取Scheduler实例
            Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();

            //内部会启动线程 start之后应用不会退出 除非执行shutdown
            scheduler.start();

            //定义job
            JobDetail job = JobBuilder.newJob(HelloJob.class)
                    .withIdentity("job1", "group1")
                    .build();

            //定义触发器
            SimpleTrigger trigger = TriggerBuilder.newTrigger()
                    .withIdentity("trigger1", "group1")
                    .startNow()
                    .withSchedule(SimpleScheduleBuilder.simpleSchedule()
                            .withIntervalInSeconds(2)
                            .repeatForever())
                    .build();

            //让quartz使用trigger调度job
            scheduler.scheduleJob(job, trigger);


//            scheduler.shutdown();
        } catch (SchedulerException e) {
            e.printStackTrace();
        }
    }

    public static class HelloJob implements Job {

        @Override
        public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
            log.info("do executing helloJob");
        }
    }
}

下载

下载的压缩包里面包含了:

  • 使用例子
  • java文档
  • 依赖的jar包
  • 源码
    image

配置

官方文档:http://www.quartz-scheduler.org/documentation/quartz-2.3.0/configuration/

quartz.properties

quartz默认使用quartz.properties文件进行配置,被StdSchedulerFactory加载使用,默认从当前工作目录中加载,如果加载不到,则从系统属性org.quartz.properties指定配置文件加载;如果仍然加载不到则使用jar包里自带的quartz.properties。

或者new StdSchedulerFactory()加载任意指定的配置文件,必须在getScheduler()调用之前

教程

监听器

  • JobListener
  • TriggerListener
  • SchedulerListener
    触发器
  • SimpleScheduleBuilder
  • CronScheduleBuilder
    常用utils
  • DateBuilder