Quartz调度器学习(2)

http://quartz-scheduler.org/documentation/quartz-2.x/cookbook/   定义了诸多如何使用Quartz的示例

1,初始化Scheduler

初始化Scheduler,一种是先创建一个StdSchedulerFactory,然后再从StdSchedulerFactory.getScheduler(),这里获得的Scheduler采用的是默认的配置。另一种是从配置文件中初始化Scheduler。

StdSchedulerFactory sf = new StdSchedulerFactory();
sf.initialize(schedulerProperties);//从配置文件中读取Scheduler的配置
Scheduler scheduler = sf.getScheduler();

2,Scheduler可以处于 standby 模式,即“待机”模式,处于该模式下的Scheduler不能 触发Job执行条件,不能执行作业。

scheduler.standby();//使调度器进入“待机”模式

从“待机”模式恢复出来,执行: scheduler.start();

3,关闭Scheduler

调用shutdown()方法关闭Scheduler,一旦调用了shutdown方法之后,调度器就不能再重新启动了,因为它的资源以及相关的线程都已经被回收了。

关闭调度器时,会面临两种情况。一种是等待作业执行完成时,关闭调度器;另一种是立即关闭调度器。通过shutdown方法接收的参数来判断是哪种情况。

scheduler.shutdown(true);//等待作业执行完成时才关闭调度器
scheduler.shutdown();//shutdown scheduler directly
//or
scheduler.shutdown(false);//shutdown scheduler directly

4,Quartz可以与Web整合。在Servlet容器中可以初始化Scheduler时,需要在web.xml 文件中进行相应的配置。参考:ServletInitScheduler

5,在非集群模式下使用多个Scheduler(每个Scheduler下可以配置多个work thread(在quartz.properties文件中配置))

对于Quartz而言,每个Scheduler必须有一个唯一的名字,即不同的Scheduler名字必须不同。而quartz.properties文件为调度器指定了Scheduler的名字。这意味着:需要多个quartz.properties文件,每个文件给一个Scheduler进行相应的属性配置。

6,保存Job,供以后使用。

// Add the the job to the scheduler‘s store
sched.addJob(job, false);

7,如何更新一个已经存在的Job

8,如何更新触发器

9,列出调度器调度的所有的作业

10.......一些非常常用的使用Quartz的小示例。。。。。

时间: 2024-08-09 13:11:44

Quartz调度器学习(2)的相关文章

spring定时任务之-quartz调度器

公司项目里面有个定时任务,一直想弄清楚其流程,以为很难,今天有空研究了一下,发现其实实现很简单. 查资料发现spring的定时任务有很多种,quartz调度器也有两种一种是作业类需继承自特定的基类:org.springframework.scheduling.quartz.QuartzJobBean. 另一种则是作业类不需继承特定基类.我觉得第二种更加简单简洁,公司项目里面也是用到的这种方法.接下来就讲一下具体编写步骤: 第一步:编写任务类 Java代码   package com.grx.pa

SpringMVC中使用 OpenSymphony Quartz 调度器

昨天收到一份笔试题  需要做用到 调度器 今天就开始弄了一下  之前的项目也用过  不过是临时用临时学的 学得不好  今天用的时候发现好多地方不知道 启动的时候老报错 结果是因为包引入少了 quartz-all-1.6.0.jar spring-context-support.jar commons-collections-3.2.jar 一定要是 3.x 的版本 默认ssh是2.X的版本 感觉自己好坑 因为这个错误我还去找了大神 说代码 Quartz使用Trigger, Job以及JobDet

Spring中Quartz调度器的使用

一.Quartz的特点 * 按作业类的继承方式来分,主要有以下两种: 1.作业类继承org.springframework.scheduling.quartz.QuartzJobBean类的方式 2.作业类不继承org.springframework.scheduling.quartz.QuartzJobBean类的方式 注:个人比较推崇第二种,因为这种方式下的作业类仍然是POJO. * 按任务调度的触发时机来分,主要有以下两种: 1.每隔指定时间则触发一次,对应的调度器为org.springf

# IT明星不是梦 # kubernetes调度器学习基础概览

scheudler是kubernetes中的核心组件,负责为用户声明的pod资源选择合适的node,同时保证集群资源的最大化利用,这里先介绍下资源调度系统设计里面的一些基础概念 基础任务资源调度 基础的任务资源调度通常包括三部分: 角色类型 功能 node node负责具体任务的执行,同时对包汇报自己拥有的资源 resource manager 汇总当前集群中所有node提供的资源,供上层的scheduler的调用获取,同时根据node汇报的任务信息来进行当前集群资源的更新 scheduler

Quartz定时任务学习(四)调度器

org.quartz.Scheduler 类层次 作为一个 Quartz 用户,你要与实现了 org.quartz.Scheduler 接口的类交互.在你调用它的任何 API 之前,你需要知道如何创建一个 Scheduler 的实例.取而代之的是用了某个工厂方法来确保了构造出 Sheduler 实例并正确的得到初始化,Quartz 框架为这一目的提供了 org.quartz.SchedulerFactory 接口.角色 SchedulerFactory 就是用来产生 Scheduler 实例的.

Quartz与Spring集成——启动调度器

前言 在<Quartz与Spring集成--创建调度器>一文中介绍了调度器的创建过程,本文将分析其启动过程.熟悉Spring原理的人都知道AbstractApplicationContext的refresh方法的重要性,在refresh方法中调用了finishRefresh方法,最后会调用到SchedulerFactoryBean的start方法,其调用栈如图1所示. 图1 SchedulerFactoryBean的start方法的调用栈 根据图1的内容,我们知道spring容器初始化完毕的最

Hadoop-2.4.1学习之容量调度器

调度器在计算机世界中占有重要地位,从操作系统到大型应用系统都可见其身影,做为分布式应用系统的典范Hadoop以可插拔的方式提供了调度器的功能,这为实现自定义的调度器提供了接口.Hadoop内置了两种类型的调度器,分别为:CapacityScheduler<和FairScheduler,本篇文章将学习CapacityScheduler.CapacityScheduler允许多个用户共享一个大的集群,并为每个用户分配指定的容量,这样每个用户的应用程序就可以在所分配的容量范围内快速获得资源,Capac

Quartz与Spring集成——创建调度器

前言 在<Quartz与Spring集成-- SchedulerFactoryBean的初始化分析>一文中介绍过Spring集成Quartz时的初始化过程,其中简单的提到了创建调度器的方法createScheduler.本文将着重介绍Quartz初始化时是如何创建调度器的. 创建调度器 这里从createScheduler的实现(见代码清单1)来分析,其处理步骤如下: 设置线程上下文的类加载器: 通过单例方法获取SchedulerRepository的实例(见代码清单2): 从调度仓库实例Sc

图解kubernetes调度器ScheduleAlgorithm核心实现学习框架设计

ScheduleAlgorithm是一个接口负责为pod选择一个合适的node节点,本节主要解析如何实现一个可扩展.可配置的通用算法框架来实现通用调度,如何进行算法的统一注册和构建,如何进行metadata和调度流程上下文数据的传递 1. 设计思考 1.1 调度设计 1.1.1 调度与抢占 当接收到pod需要被调度后,默认首先调用schedule来进行正常的业务调度尝试从当前集群中选择一个合适的node 如果调度失败则尝试抢占调度,根据优先级抢占低优先级的pod运行高优先级pod 1.1.2 调