diff --git "a/doc/XXL-JOB\345\256\230\346\226\271\346\226\207\346\241\243.md" "b/doc/XXL-JOB\345\256\230\346\226\271\346\226\207\346\241\243.md" index 1008b7f1d457c247d3e39fc763dd490180543e47..4cc23c6d06855a482d900e7c1fdb890af3082e59 100644 --- "a/doc/XXL-JOB\345\256\230\346\226\271\346\226\207\346\241\243.md" +++ "b/doc/XXL-JOB\345\256\230\346\226\271\346\226\207\346\241\243.md" @@ -648,9 +648,12 @@ XXL-JOB首先定制了Quartz原生表结构前缀(XXL_JOB_QRTZ_)。 ### 5.4 调度模块剖析 #### 5.4.1 quartz的不足 Quartz作为开源作业调度中的佼佼者,是作业调度的首选。但是集群环境中Quartz采用API的方式对任务进行管理,从而可以避免上述问题,但是同样存在以下问题: - - 问题一:调用API的的方式操作任务,不人性化; - - 问题二:需要持久化业务QuartzJobBean到底层数据表中,系统侵入性相当严重。 - - 问题三:调度逻辑和QuartzJobBean耦合在同一个项目中,这将导致一个问题,在调度任务数量逐渐增多,同时调度任务逻辑逐渐加重的情况加,此时调度系统的性能将大大受限于业务; + +- 问题一:调用API的的方式操作任务,不人性化; +- 问题二:需要持久化业务QuartzJobBean到底层数据表中,系统侵入性相当严重。 +- 问题三:调度逻辑和QuartzJobBean耦合在同一个项目中,这将导致一个问题,在调度任务数量逐渐增多,同时调度任务逻辑逐渐加重的情况加,此时调度系统的性能将大大受限于业务; +- 问题四:quartz底层以“抢占式”获取DB锁并由抢占成功节点负责运行任务,会导致节点负载悬殊非常大;而XXL-JOB通过执行器实现“协同分配式”运行任务,充分发挥集群优势,负载各节点均衡。 + XXL-JOB弥补了quartz的上述不足之处。 #### 5.4.2 RemoteHttpJobBean