Quartz配置资源介绍

1.配置、资源SchedulerFactory

Quartz以模块方式架构,因此要使它运行。几个组件必须要很好的咬合在一起。【现在已经有了一些现成的助手可以完成这些工作】
所有scheduler实例是由SchedulerFactory创建。Quartz的三个核心概念:调度器,任务,触发器。
调度器,任务,触发器三者之间的关系为:
在这里插入图片描述

一个作业,比较重要的三个要素是Scheduler,JobDetail,Trigger;而Trigger对于Job而言就好比一个驱动器;没有触发器来定时驱动作业,作业就无法运行;对于Job而言,一个Job可以对应多个Trigger,但对于Trigger而言,一个Trigger只能对应一个Job;所以一个Trigger只能指派给一个Job;如果需要一个更复杂的触发计划,可以创建多个Trigger并指派他妈给同一个Job

Scheduler的创建方式

  • StdSchedulerFactory

Quartz默认的SchedulerFactory

  • 使用一组参数(java.util.Properties)来创建和初始化Quartz调度器
  • 配置参数一般存储在quartz.properties文件中
  • 调用getScheduler方法就能穿件和初始化调度器对象
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();

用法一:输出调度器开始的时间

//调度器绑定任务实例和触发器,方法返回调开始执行的时间
Date date = scheduler.scheduleJob(jobDetail, trigger);

用法二:启动任务调度

//开启任务调度
scheduler.start();

用法三:任务调度挂起【暂停操作】

//任务调度挂起
scheduler.standby();

用法四:任务调度关闭

//关闭任务调度
scheduler.shutdown(); //默认为false
//scheduler.shutdown(true);  表示等待所有正在执行的Job执行完毕后,再关闭>Scheduler
//scheduler.shutdown(false); 表示直接关闭Scheduler
  • DirectSchedulerFactory

DirectSchedulerFactory是对SchedulerFactory的直接实现,通过它可以直接构建scheduler,threadpool等

DirectSchedulerFactory directSchedulerFactory = DirectSchedulerFactory.getInstance();
Scheduler scheduler = directSchedulerFactory.getScheduler();

2.Quartz.properties文件介绍

2.1.文件默认所在位置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BwfzOctD-1626663165604)(\images\image-20210713172314589.png)]

默认使用的是该配置文件,如果想自定义配置文件只需要在resources重新定义一个quartz.properties文件编写内容即可。

2.2.组成部分
  • 调度器属性

org.quartz.scheduler.instanceName:属性用来区分特定的调度器实例,可以按照功能用途来给调度器起名
org.quartz.scheduler.instanceId:属性和前者一样,运行任何字符串,但是这个值必须在所有调度器实例中是唯一的,尤其是在一个集群环境中,作为集群的唯一key。假如你想Quartz帮你生成这个值额度话可以设置为AUTO

  • 线程池属性

threadCount:处理Job的线程个数。至少是1,但是最多的话不要超过100,在多数集群上设置该值超过100的话就会显得相当不实用了,特别是Job执行时间较长的情况下

threadPriority:线程的优先级,有限级别高的线程比级别地的线程有限执行。最小为1,最大为10。默认为5

org.quartz.threadPoll.class:一个实现了org.quartz.spi.ThreadPoll接口的类,Quartz自带的线程池实现类是org.quartz.smpl.SimpleThreadPoll

  • 作业存储设置

描述了在调度器实例的生命周期中,Job和Trigger信息是如何被存储的

  • 插件配置

满足特定需求需要用到的Quartz插件的配置

2.3.配置属性描述好文推荐

配置属性描述好文推荐传送门

2.4.在程序中去进行配置

如下例所示:

//创建调度实例工厂实例
StdSchedulerFactory schedulerFactory = new StdSchedulerFactory();
//创建配置工厂属性的对象
Properties properties = new Properties();
properties.put(StdSchedulerFactory.PROP_THREAD_POOL_CLASS, "org.quartz.simpl.SimpleThreadPool");
properties.put("org.quartz.threadPool.threadCount", "10");
//加载配置
schedulerFactory.initialize(properties);
//从调度工厂中获取调度器实例
Scheduler scheduler = schedulerFactory.getScheduler();
..........
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值