我们先看官网提供的一张架构图来分析。
从架构图可以看出,分别有调度中心和执行器两大组成部分
- 调度中心。负责管理调度信息,按照调度配置发出调度请求,自身不承担业务代码。支持可视化界面,可以在调度中心对任务进行新增,更新,删除,会实时生效。支持监控调度结果,查看执行日志,查看调度任务统计报表,任务失败告警等等。
- 执行器。负责接收调度请求,执行调度任务的业务逻辑。执行器启动后需要注册到调度中心。接收调度中心的发出的执行请求,终止请求,日志请求等等。
接下来我们看一下xxl-job的工作原理。
-
任务执行器根据配置的调度中心的地址,自动注册到调度中心。
-
达到任务触发条件,调度中心下发任务。
-
执行器基于线程池执行任务,并把执行结果放入内存队列中、把执行日志写入日志文件中。
-
执行器的回调线程消费内存队列中的执行结果,主动上报给调度中心。
-
当用户在调度中心查看任务日志,调度中心请求任务执行器,任务执行器读取任务日志文件并返回日志详情。