分布式任务调度框架
分布式任务调度不同于单机调度。
假设你一个项目部署在多台服务器,项目有一个定时任务脚步,结果就是每个服务都会执行同样的操作,既浪费资源又不安全。
这时候就需要分布式调度了。
分布式调度框架可以手动或者自动分配分片到每个服务器执行定时任务,同时这类产品还提供后台管理界面,手动修改,即时生效。
# 同类产品对比
QuartZ | xxl-job | SchedulerX 2.0 | PowerJob | |
---|---|---|---|---|
定时类型 | CRON | CRON | CRON、固定频率、固定延迟、OpenAPI | CRON、固定频率、固定延迟、OpenAPI |
任务类型 | 内置Java | 内置Java、GLUE Java、Shell、Python等脚本 | 内置Java、外置Java(FatJar)、Shell、Python等脚本 | 内置Java、外置Java(容器)、Shell、Python等脚本 |
分布式任务 | 无 | 静态分片 | MapReduce 动态分片 | MapReduce 动态分片 |
在线任务治理 | 不支持 | 支持 | 支持 | 支持 |
日志白屏化 | 不支持 | 支持 | 不支持 | 支持 |
调度方式及性能 | 基于数据库锁,有性能瓶颈 | 基于数据库锁,有性能瓶颈 | 不详 | 无锁化设计,性能强劲无上限 |
报警监控 | 无 | 邮件 | 短信 | 邮件,提供接口允许开发者扩展 |
系统依赖 | 关系型数据库(MySQL、Oracle...) | MySQL | 阿里云付费产品 | 任意 Spring Data Jpa支持的关系型数据库(MySQL、Oracle...) |
DAG 工作流 | 不支持 | 不支持 | 支持 | 支持 |
上次更新: 2024-05-23 10:33:15