分布式调度在互联网企业中占据着十分重要的作用,尤其是电子商务领域,由于存在数据量大、高并发的特点,对数据处理的要求较高,既要保证高效性,也要保证准确性和安全性,相对比较耗时的业务逻辑往往会从中剥离开来进行异步处理。
下列是几款优秀和极具潜力的国产开源分布式任务调度系统:
opencron
opencron 是一个功能完善且通用的开源定时任务调度系统,拥有先进可靠的自动化任务管理调度功能,提供可操作的 web 图形化管理满足多种场景下各种复杂的定时任务调度,同时集成了 linux 实时监控、webssh 等功能特性。
LTS
LTS,light-task-scheduler,是一款分布式任务调度框架, 支持实时任务、定时任务和 Cron 任务。有较好的伸缩性和扩展性,提供对 Spring 的支持(包括 Xml 和注解),提供业务日志记录器。支持节点监控、任务执行监、JVM 监控,支持动态提交、更改、停止任务。
xxl-job
XXL-JOB 是一个轻量级分布式任务调度框架,支持通过 Web 页面对任务进行 CRUD 操作,支持动态修改任务状态、暂停/恢复任务,以及终止运行中任务,支持在线配置调度任务入参和在线查看调度结果。
XXL-JOB
新增执行器
编译执行器项目
xxl-job-executor-sample是通过源码配置、编译后的组件xxl-job-executor-sample-springboot运行时提供的一个server,源码中修改的位置如下:
执行mvn clean package
编译打包可生成jar文件
然后,通过supervisor使其在后台持续运行。
- 添加执行器到xxl-job-admin
注意:AppName与编译源码时配置的appname一致,才可以自动获取机器地址(端口)。否则,手动录入。
添加示例任务
任务设置
0 * * * * ? *
表示每分钟(0秒时)调度一次,因间隔短,不设置任务超时及失败重试。任务参数内填多行也是作为一个参数($1)传递给脚本的。路由策略“第一个”表示总是在第一个OnLine机器上执行。
该任务的示例脚本如下:
1 |
|
如果执行状态失败,将发出报警邮件。