1. quartz
2.spring scheduled 定时任务
3.平台级开源产品:Azkaban任务调度
4.Apache Oozie
5.Airflow
区别和使用场景:
1.quartz集成到项目中需要做代码的集成,如果需要持久化还需要有库表支持,这个再项目中比较常见,但是对项目侵入比较严重,集成比较重。
2.quartz相对于spring scheduled定时任务, scheduled相当于一个轻量级别的定时任务,能够通过注解,表达式即可实现定时任务的触发。这个使用场景是对任务启动时间,或者重复启动也允许的业务场景中。比如,我有一个每隔五分钟需要执行一遍的方法,但是如果项目重启,则需要重新计时,相当于五分钟可能延长到了七分钟才执行。
3.Azkaban任务调度是平台级别,适用于项目任务非闭环情况下的调度系统,选择Azkaban的理由:
4.Apache Oozie 配置工作流的过程是编写大量的XML配置,而且代码复杂度比较高,不易于二次开发
5.Airflow 是一个应用也比较广泛的调度系统,但是其开发语言是Python。
附带专业博客对azkaban调度系统的安装: