Schedulerx2.0是阿里中间件自研的基于Akka架构的新一代分布式任务调度平台,提供定时、任务编排、分布式跑批等功能。使用Schedulerx2.0,您能够在控制台配置管理您的定时任务,查询历史执行记录,查看运行日志。借助Schedulerx2.0,您还能够经过工做流进行任务编排和数据传递。Schedulerx2.0还提供了简单易用的分布式编程模型,简单几行代码就能够将海量数据分布式到多台机器上执行。前端
Schedulerx2.0提供了任务调度与执行的一整套解决方案,在阿里巴巴集团内部普遍使用并久经考验,具备高可靠、海量任务、秒级别调度等能力。java
上线时间:2019-04-30python
Schedulerx2.0是Schedulerx1.0(DTS)的下一代产品,采用全新的架构,是全新自研的下一代分布式任务调度平台,不但解决了老产品的性能瓶颈,还提供了更多更快更强的能力。spring
3.1.1 Crontabshell
支持unix crontab表达式,不支持秒级别。编程
3.1.2 Fixed rate架构
众所周知,crontab必须被60整除,好比想每隔40分钟跑一次,cron不支持。Fixed rate专门用来作按期轮询,表达式简单,不支持秒级别。并发
3.1.3 Fixed delay运维
适合对实时性要求比较高的业务,好比每次执行完成隔10秒再跑,那么second delay很是适合你。而且second delay能支持到秒级别。分布式
3.1.4 日历
支持多种日历,还能够自定义导入日历。好比金融业务须要在每一个交易日执行。
3.1.5 时区
跨国的业务,须要在每一个国家的时区定时执行某个任务。
支持工做流(DAG)进行任务编排,操做简单,前端直接单手操做拖拖拽拽便可。详细的任务状态图能一目了然看到下游任务为何没跑。
支持多种任务类型,能够无限扩展。
3.4.1 执行方式
3.4.2 分布式编程模型
Schedulerx2.0能够处理有数据状态的任务。建立任务的时候能够填数据偏移。好比一个任务是天天00:30运行,可是实际上要处理上一天的数据,就能够向前偏移一个小时。运行时间不变,执行的时候经过context.getDataTime()得到的就是前一天23:30。
既然任务具备了数据时间,必定少不了重刷数据。好比一个任务/工做流最终产生一个报表,可是业务发生变动(新增一个字段),或者发现上一个月的数据都有错误,那么就须要重刷过去一个月的数据。
经过重刷数据功能,能够重刷某些任务/工做流的数据(只支持天级别),每一个实例都是不一样的数据时间。
以前的老产品Schedulerx1.0(DTS)和spring的结合很是暴力,对bean的命名有强要求,常常遇到注入失败的问题。Schedulerx2.0支持原生spring语法,接入更加的方便。
本文为云栖社区原创内容,未经容许不得转载。