SchedulerX 简介
SchedulerX 是阿里中间件团队开发的一款分布式任务调度产品,在阿里内部有着广泛的使用,经过集团内上千个业务应用历经多年打磨而成。每天非常稳定的运行着集团内几十万个任务以及完成每天几亿次的任务调度。在未来 SchedulerX 将支持更多特性以满足集团内外不断增长的用户需求。
用户在应用中依赖 SchedulerX-Client,并在 SchedulerX 控制台创建定时任务,进行相应的参数配置后,启动该应用就可以接收到定时任务的周期调度。SchedulerX-Server 集群为调度触发提供高可用性和高稳定性的保证,并且可以实现对用户客户端机器集群进行分布式调度。
功能特性
分布式
不管是 SchedulerX 服务端还是客户端都是分布式架构设计,任务可以在多台客户端机器里的任何一台机器执行,如果客户端出现宕机的情况,服务端会自动选择正常运行的客户端(业务 App 机器)去执行 Job。
高可用
每个 Job 在服务端三台不同机器有一个备份,SchedulerX 服务端任意宕掉两台机器仍能保证 Job 正常调度。
轻量服务
用户不需要关心调度逻辑,只需要实现业务逻辑即可。
简单易用
用户只需要在业务应用里添加上 SchedulerX 的客户端 JAR 包,实现一个 JobProcessor 接口,然后再自主运维控制台配置上一个 Job 即可完成使用。
支持 Quartz 时间表达式
支持国际标准的 Quartz 时间表达式,该表达式精确到秒级别。
友好的用户界面
SchedulerX 提供了非常友好的自主运维控制台方便用户创建,删除,修改 Job。提供了立即触发执行一次的功能,方便用户测试以及关键时刻手动立即执行一次。还为用户提供了历史执行记录查询的功能,用户可以看到任何一个 Job 过去 100 次的历史执行记录。
应用场景
[backcolor=transparent]固定时间点触发的任务
例如:2016年11月11日0点执行的一次任务。
[backcolor=transparent]周期性触发的任务
例如:每秒钟(或者每小时、每天、每星期、每月等)执行一次的任务。
[backcolor=transparent]通过控制台手动触发的任务
例如:可以通过控制台手功触发任务的调度执行。任务触发执行后,由用户实现的 Job 处理器接口中的代码决定具体要完成的业务逻辑功能(例如扫表、触发 RPC 调用、入库、执行本地脚本等)。