本文介绍在任务调度中托管XXL-JOB任务的两种方法,分别是使用XXLJOB版和SchedulerX版。针对XXL-JOB,我们强烈推荐使用高度兼容的XXLJOB实例版。
XXLJOB版
简介
任务调度XXLJOB实例版已经公测,该版本以SchedulerX为内核,兼容XXLJOB网络层协议,提供无侵入托管XXLJOB客户端的解决方案,我们强烈推荐新用户使用XXLJOB实例版,以便更好地体验我们的任务调度服务。
SchedulerX版
简介
通过在pom中引入schedulerx2-plugin-xxljob,兼容XXLJOB的SDK层接口。不需要修改一行代码,即可将XXLJOB客户端托管到任务调度SchedulerX上,支持@XxlJob
新注解和JobHandler
类接口方式。
功能优势
免运维和低成本
自建XXL-JOB至少需要2个服务器+1个数据库。托管XXL-JOB可以节省机器成本和人力运维成本。
兼容升级
XXL-JOB不同版本间存在不兼容,导致在升级SDK版本时,往往需要对业务代码进行重构以实现适配。而SchedulerX 2.0则展现出卓越的兼容性优势,它无缝对接XXL-JOB各版本接口与注解体系,确保用户在任何SDK升级过程中,无需对既有业务代码进行任何改动。
海量任务和精准调度
开源XXL-JOB基于分布式数据库锁保证只有一个节点执行任务,对于数据库有压力。据统计,当任务超过1万,且都是分钟级别的任务时,会有比较明显的调度延时。如果是秒级别任务,延时更加明显。
SchedulerX 2.0采用分布式架构,不同的Server调度不同的任务,且无锁竞争,实现水平扩展,可支持百万级别任务调度。针对秒级别任务低延时的特性,采用了专门的架构,占用资源极低,可以作为实时业务的秒级别调度场景。SchedulerX 2.0还支持一次性任务,可以指定某个时刻执行一次任务,执行完任务自动销毁,适用于定时通知、订单定时关闭等场景。
丰富的可视化能力
查看用户大盘
查看任务历史记录
查看用户运行日志
查看任务运行堆栈
查看任务操作记录
高级特性
任务编排
支持工作流(DAG)进行任务编排,可通过拖拽对前端进行操作。详细的任务状态图方便您了解下游任务执行失败的原因。
限流
常见场景为夜间离线报表业务。例如,很多报表任务是凌晨1点或者2点开始,需控制应用最大并发的任务数量(否则业务无法支撑),达到并发上限的任务会在队列中等待。若同时要求早上9点前必须完成KPI报表,可以设置KPI任务高优先级,高优先级任务会抢占低优先级任务,从而实现优先调度。
SchedulerX 2. 0支持可抢占的任务优先级队列,只需要在控制台配置即可。
资源隔离
支持命名空间和应用级别资源隔离,支持多租户权限管理。
商业化报警运维
报警
支持通过邮件、钉钉、短信或电话进行任务执行失败、超时和无可用机器报警通知。报警内容可以查看任务失败原因。
运维操作
支持原地程序运行、重刷数据、标记成功、查看堆栈、停止任务和指定机器等。