一、相关介绍
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,是完全由Java开发的一个开源的任务日程管理系统
二、概念和类
Job:要执行的作业类所实现的接口
JobDetail:定义作业实例的详细信息属性
Trigger:触发器接口,Quartz中提供了SimpleTrigger、CronTirgger和Calendar等多种触发器
Scheduler:任务记录表,调度器实例
三、存储方式
RAMJobStore:不要外部数据库,配置容易,运行速度快
JDBCJobStore:支持集群,所有的任务信息都会保存到数据库中。可以控制事物;应用服务器关闭或者重启,任务信息都不会丢失且可以恢复因此而导致执行失败的任务
四、线程模型
调度主线程:QuartzScheduler被创建时会创建一个QuartzSchedulerThread的调度主线程实例
任务执行线程:Quartz不会在主线程(QuartzSchedulerThread)中处理用户的Job,而是把线程管理的职责委托给ThreadPool,一般的设置是使用SimpleThreadPool。SimpleThreadPool创建了一定数量的WorkerThread实例来使得Job能够在线程中进行处理。WorkerThread是定义在SimpleThreadPool类中的内部类,它实质上就是一个线程
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,是完全由Java开发的一个开源的任务日程管理系统
二、概念和类
Job:要执行的作业类所实现的接口
JobDetail:定义作业实例的详细信息属性
Trigger:触发器接口,Quartz中提供了SimpleTrigger、CronTirgger和Calendar等多种触发器
Scheduler:任务记录表,调度器实例
三、存储方式
RAMJobStore:不要外部数据库,配置容易,运行速度快
JDBCJobStore:支持集群,所有的任务信息都会保存到数据库中。可以控制事物;应用服务器关闭或者重启,任务信息都不会丢失且可以恢复因此而导致执行失败的任务
四、线程模型
调度主线程:QuartzScheduler被创建时会创建一个QuartzSchedulerThread的调度主线程实例
任务执行线程:Quartz不会在主线程(QuartzSchedulerThread)中处理用户的Job,而是把线程管理的职责委托给ThreadPool,一般的设置是使用SimpleThreadPool。SimpleThreadPool创建了一定数量的WorkerThread实例来使得Job能够在线程中进行处理。WorkerThread是定义在SimpleThreadPool类中的内部类,它实质上就是一个线程