定时任务是软件开发中必不可少的中间件。
    分布式定时任务可以解决分布式下,多主机,多应用,大数据量的处理问题。

    常用的分布式框架或工具有:

    • ElasticJob: 当当网的,2020年成为Apache项目,特点是弹性伸缩,超大规模数据也能应对。
    • Saturn:唯品会的,Saturn是在当当开源的Elastic Job基础上,结合各方需求和我们的实践见解改良而成,怎么说呢,改良了总比不改的好用些。
    • xxl-job:个人开源项目,但是:简单,功能齐全,好用!比ElasticJob使用要简单。
    • PowerJob:阿里工程师开源项目,功能齐全,使用简单,推荐!跟xxl-job一样简单,但功能上更齐全。
    • SchedulerX :阿里云的,按量付费,稳定,省事,超大规模数据仍可以使用,优点是省事简单,缺点是花钱。不开源,不免费!

    目前我个人推荐PowerJob,使用简单,功能齐全,工程成本低。PowerJob作者自己对各个框架的对比如下:

    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工作流 不支持 不支持 支持 支持