🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# :-: **分布式任务调度** 随着系统规模的发展,定时任务数量日益增多,任务也变得越来越复杂,尤其是在分布式环境下,存在多个业务系统,每个业务系统都有定时任务的需求,如果都在自身系统中调度,一方面增加业务系统的复杂度,另一方面也不方便管理,因此需要有一个任务平台对分散的任务进行统一管理调度,基于目前的情况,任务平台需要支持以下几个方面: 1、任务统一管理,提供图形化界面对任务进行配置和调度。 2、任务并发控制,同一个任务在同一时间只能允许一个执行。 3、任务弹性扩容,可根据繁忙情况动态增减服务器分摊压力,对大任务进行分片处理。 4、任务依赖问题,能够处理任务包含子任务的情况,前一个完成后触发子任务执行。 5、支持多类型的任务,支持Spring Bean、Shell等。 6、任务节点高可用,任务节点异常或者繁忙时能够转移到其他节点执行。 7、调度中心高可用,支持集群部署,避免出现单点故障。 8、执行状态监控,方便查看任务执行状态,异常情况告警,支持多渠道通知。 # 解决方案 现在分布式下任务调度有很多解决方案,可以基于Quartz开发任务管理平台,也可以使用开源的任务调度平台,比如xxl-job,elastic-job。 **XXL-JOB**大众点评员工徐雪里于2015年发布的分布式任务调度平台,是一个轻量级分布式任务调度框架,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。官方地址:[https://www.xuxueli.com/xxl-job/](https://www.xuxueli.com/xxl-job/) **ELASTIC-JOB**当当开发的弹性分布式任务调度系统,功能丰富强大,采用zookeeper实现分布式协调,实现任务高可用以及分片,并且可以支持云开发,由两个相互独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成。官方地址:[http://elasticjob.io/doc](http://elasticjob.io/docs/elastic-job-lite/00-overview/)