美文网首页
Quartz核心概念

Quartz核心概念

作者: itcode | 来源:发表于2019-07-07 18:56 被阅读0次

1、核心概念

Job:要执行的业务逻辑,一般是一个实现了某个接口或者继承自某个类的类;
JobDetail:定义了一个任务的相关属性,包括要执行的业务逻辑(Job)、任务的标识(名称)、任务在没有Trigger关联的时候是否自动删除、任务在执行过程中会用到的一些属性等;
Trigger:触发器,定义了一个触发策略,如:多久执行一次、执行几次,什么时间点执行。用于关联到JobDetail,一个JobDetail可以关联多个Trigger;
Cron表达式:一种触发策略定义表达式;
Scheduler:调度器,是Quartz中的核心组件,它负责任务的调度、JobDetail、Trigger的管理,它包含了和定时调度相关的所有属性和操作。一般一个程序中就定义一个Scheduler组件。
SchedulerName:调度器的名称,每个调度器都有一个名称,用于区别其他调度器。
SchedulerInstanceId:调度器实例,Quartz支持多实例部署,每一个实例都有一个唯一的标识。
Misfire:一种状态,标识任务未按照既定的时间执行。

2、Quartz定时任务默认都是并发执行的,不会等待上一次任务执行完毕,只要间隔时间到就会执行,这样往往会导致我们执行的数据不正确。如果定时任执行太长,会长时间占用资源,导致其它任务堵塞。

解决办法:

①.在Spring中这时需要设置concurrent的值为false, 禁止并发执行。

<property name="concurrent" value="true" />

②.当不使用spring的时候就需要在Job的实现类上加@DisallowConcurrentExecution的注释。

@DisallowConcurrentExecution 禁止并发执行多个相同定义的JobDetail, 这个注解是加在Job类上的, 但意思并不是不能同时执行多个Job, 而是不能并发执行同一个Job Definition(由JobDetail定义), 但是可以同时执行多个不同的JobDetail, 举例说明,我们有一个Job类,叫做SayHelloJob, 并在这个Job上加了这个注解, 然后在这个Job上定义了很多个JobDetail, 如sayHelloToJoeJobDetail, sayHelloToMikeJobDetail, 那么当scheduler启动时, 不会并发执行多个sayHelloToJoeJobDetail或者sayHelloToMikeJobDetail, 但可以同时执行sayHelloToJoeJobDetail跟sayHelloToMikeJobDetail
@PersistJobDataAfterExecution 同样, 也是加在Job上,表示当正常执行完Job后, JobDataMap中的数据应该被改动, 以被下一次调用时用。当使用@PersistJobDataAfterExecution 注解时, 为了避免并发时, 存储数据造成混乱, 强烈建议把@DisallowConcurrentExecution注解也加上。

相关文章

  • Quartz

    Quartz 核心概念 我们需要明白 Quartz 的几个核心概念,这样理解起 Quartz 的原理就会变得简单了...

  • Quartz核心概念

    1、核心概念 Job:要执行的业务逻辑,一般是一个实现了某个接口或者继承自某个类的类;JobDetail:定义了一...

  • Quartz框架

    Quartz Quartz是一个全功能,开源的任务调度服务。Quartz的核心概念:schedule任务调度,jo...

  • Quartz 分布式解决方案

    本文要点 1.Quartz相关重要概念 2.如何实现分布式调度 3.核心源码的实现 1.Quartz相关重要概念 ...

  • SpringBoot集成Quartz发布、修改、暂停、删除定时任

    一、基本概念 Quartz核心的概念:scheduler任务调度、Job任务、Trigger触发器、JobDeta...

  • Spring Boot整合Quartz

    一、Quartz简介   Quartz是一个开源作业调度框架,其核心概念包括: Job:表示一个工作,要执行的具体...

  • springboot整合quartz定时任务

    1. quartz的基本实现原理 ** Quartz 核心元素 ** Quartz任务调度的核心元素为: Sche...

  • 作业调度框架Quartz

    Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目。 核心概念 Job...

  • Quartz任务调度器

    Quartz任务调度器 与spring的整合 核心概念 1.scheduler是一个计划调度器容器,容器里面可以盛...

  • 任务调度框架Quartz原理简介

    [TOC] 第一章 Quartz 1.1 Quartz概念 Quartz是OpenSymphony开源组织的一个J...

网友评论

      本文标题:Quartz核心概念

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