大数据基础之Quartz(1)简介、源代码解析
一简介
官网
http://www.quartz-scheduler.org/
What is the Quartz Job Scheduling Library?
Quartz is a richly featured, open source job scheduling library that can be integrated within virtually any Java application - from the smallest stand-alone application to the largest e-commerce system. Quartz can be used to create simple or complex schedules for executing tens, hundreds, or even tens-of-thousands of jobs; jobs whose tasks are defined as standard Java components that may execute virtually anything you may program them to do. The Quartz Scheduler includes many enterprise-class features, such as support for JTA transactions and clustering.
二 代码解析
开启分布式
org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.isClustered=true
启动过程
QuartzScheduler.start
QuartzSchedulerResources.getJobStore
StdSchedulerFactory.instantiate (org.quartz.jobStore.class)
JobStoreSupport.setLockHandler (org.quartz.jobStore.lockHandler.class)
JobStoreSupport.initialize
setLockHandler (StdRowLockSemaphore)
JobStoreSupport.schedulerStarted
ClusterManager.initialize
run
manage
doCheckin
clusterCheckIn
Semaphore.obtainLock
StdRowLockSemaphore.executeSQL (select for update and insert)
clusterRecover
signalSchedulingChangeImmediately
SchedulerSignaler.signalSchedulingChange
QuartzSchedulerThread.signalSchedulingChange
QuartzSchedulerThread.run
JobStore.acquireNextTriggers
JobStore.triggersFired
各种建表语句地址:https://gitlab.com/quartz-scheduler/quartz/-/tree/master/quartz-core/src/main/resources/org/quartz/impl/jdbcjobstore
相关文章
- is_unique 属性检查给定 Series 对象中的基础数据是否唯一
- Win10系列:UWP界面布局基础1
- 大数据培训不可能速成,基础很重要
- 【LoadRunner-基础篇】
- sql基础--怎样查询所有列数据
- 小白学 Python 数据分析(6):Pandas (五)基础操作(2)数据选择
- 大数据基础之Logstash(6)mongo input
- 大数据基础之ElasticSearch(4)es数据导入过程
- 大数据基础之Mesos(1)简介、安装、使用
- 大数据基础之Impala(2)实现细节
- 大数据基础之Spark(8)Spark中Join实现原理
- 大数据基础之Spark(2)Spark on Yarn:container memory allocation容器内存分配
- Spark修炼之道(基础篇)——Linux大数据开发基础:第一节、Linux介绍、安装及使用初步
- 【项目实战】快来入门Groovy的基础语法吧
- 零基础学Python(第十三章 元组)
- 100天精通Python(进阶篇)——第38天:多进程multiprocessing模块基础+代码实战
- 只要你学透这13个Python爬虫,就能爬取天下的的数据!还不快上车(附零基础学习资料)
- 〖大前端 - 基础入门三大核心之JS篇②〗- 掌握 Javascrip 的基础语法
- 【甘道夫】Sqoop1.99.3基础操作--导入Oracle的数据到HDFS
- TypeScript学习笔记(二)—— TypeScript基础
- 并发基础篇(六):线程Thread类的start()方法和run()方法
- 【java基础】接口(interface)