第三节:Quartz 执行过程
来源:互联网 发布:邮件 rss源码 编辑:程序博客网 时间:2024/05/29 14:20
稍微往quartz里面看了下代码在加上自己的揣测,大概梳理下它的执行过程,是如何调度,如何执行任务的。
执行过程:
调度器初始化配置,比如JobStore,线程池,轮循线程,作业执行环境等
如果有任务来了就把任务扔到JobStore中,有另外的线程会根据触发机制来轮循JobStore中的job,如果满足执行条件就把它扔到线程池中执行,这样一次执行作业的任务就完成了。
其中
调度器类比如有:
Quartz.Impl. StdScheduler(标准调度器)
Quartz.Impl. RemoteScheduler(远程调度器)
线程池有:
Quartz.Simpl. SimpleThreadPool
执行job的类有:
Quartz.Core.JobRunShell(运行我们写好的job的具体类,具体由线程池来调用执行)
Quartz.Core. QuartzScheduler
Quartz.Core.QuartzSchedulerThread等
存放job的容器有:
Quartz.Simpl.RAMJobStore(内存存储)和持久化的存储(略)
触发器有:
Quartz.Impl.Triggers.CalendarIntervalTriggerImpl
Quartz.Impl.Triggers.SimpleTriggerImpl
Quartz.Impl.Triggers.DailyTimeIntervalTriggerImpl
然后把上面这些类套到执行过程中,如下:
首先通过调度工厂初始化简单的SimpleThreadPool,RAMJobStore最后得到StdScheduler,在通过QuartzScheduler把轮循线程QuartzSchedulerThread运行起来,当有带有触发器(SimpleTriggerImpl)的job进来时就扔到RAMJobStore中,如果满足执行条件该job就会被扔到SimpleThreadPool中由JobRunShell完成执行,这样一次执行作业的任务就完成了。
总结:了解了Quartz的整个执行过程对继续往下看来说是很重要的,但是上面好多地方都非常模糊的是由自己推测的,好多是不准确的,不管怎么今天接触到了Quartz中大部分重要的类。
- 第三节:Quartz 执行过程
- TRS中Quartz的执行过程
- 第三节 什么是ERP
- 第三节 CFileOpt类
- 第三节第五周
- 第三节课堂感受
- 第一章 --- 第三节
- 第二章 --- 第三节
- csdn第三节课
- 第三章 ---- 第三节
- Java 第三节 总结
- 第二章 第三节
- php学习 第三节
- XSS第三节,分门别类
- java笔记第三节
- 【第二章 第三节】
- 第三节 布局
- 【第一章 第三节】
- 我来说说百度的问题吧。。别和谐就行。
- 平方根法和改进的平方根法解线性方程组(Matlab程序)
- 创建DML触发器
- 列主元Gauss消去法解线性方程组(C语言)
- Linux下使用Tomcat7搭建高性能Java服务器
- 第三节:Quartz 执行过程
- Android杂谈---读取XML资源
- 三对角阵的LU分解和三对角方程组的求解(C语言)
- 计算当前sql语句执行速度
- C++简易模仿C#Delegate机制
- 消息到达提醒功能
- 求解三对角方程组的追赶法(Matlab程序)
- Jacobi迭代法解线性方程组(C语言)
- 九九乘方表