比较常见的几款分布式定时调度器
对比项 | 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动态分片 |
在线任务治理 | 不支持 | 支持 | 支持 | 支持 |
日志白屏化 | 不支持 | 支持 | 不支持 | 支持 |
调度方式及性能 | 基于数据库锁,有性能瓶颈 | 基于数据库锁,有性能瓶颈 | 不详 | 无锁化设计,性能强劲无上限 |
报警监控 | 无 | 邮件 | 短信 | WebHook、邮件、钉钉与自定义扩展 |
系统依赖 | JDBC支持的关系型数据库(MySQL、Oracle...) | MySQL | 人民币 | 任意Spring Data Jpa支持的关系型数据库(MySQL、Oracle...) |
DAG工作流 | 不支持 | 不支持 | 支持 | 支持 |
地址 | www.quartz-scheduler.org | www.xuxueli.com/xxl-job/ | www.aliyun.com/aliware/sch… | www.yuque.com/powerjob/gu… |
spring 自带的定时器使用需要注意的地方
1.同一个服务里面的,执行的线程是同一个,需要不同的线程执行,则需要自定义执行线程池
@Bean
public TaskScheduler taskScheduler(){
ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
taskScheduler.setPoolSize(5);
return taskScheduler;
}
其他参数自行配置