airflow实现Java定时任务_任务管理调度系统apache-airflow:不再为定时任务的管理而发愁...

对于定时任务的实现,有很多现成的框架来实现,比如Java中自带的ScheduledExecutorService或者第三方框架Quartz,还有Python中的crontab、APSScheduler等等,但是这些定时任务多了起来后,管理就是一个问题,那么就有这样一个系统,专门用来管理和调度这些定时任务,他就是apache-airflow。

Airflow是一个可编程,调度和监控的工作流平台,基于有向无环图(DAG),airflow可以定义一组有依赖的任务,按照依赖依次执行。airflow提供了丰富的命令行工具用于系统管控,而其web管理界面同样也可以方便的管控调度任务,并且对任务运行状态进行实时监控,方便了系统的运维和管理。对于任务的执行,airflow里面提供了执行器(Executor),Airflow本身是一个综合平台,它兼容多种组件,所以在使用的时候有多种方案可以选择。比如最关键的执行器就有四种选择:

1、SequentialExecutor:单进程顺序执行任务,默认执行器,通常只用于测试

2、LocalExecutor:多进程本地执行任务

3、CeleryExecutor:分布式调度,生产常用

4、DaskExecutor :动态任务调度,主要用于数据分析

这样的大概介绍会让大家有些云里雾里,那么我们就先安装一下这个系统,然后根据安装后的使用,在详细对各个功能做介绍。

我们首先设置一下环境变量:export AIRFLOW_HOME=~/airflow,这样安装的airflow的一些配置文件或者日志目录,就以这个为主目录了!

由于是Python环境,就使用pip install apache-airflow来安装:

这样airflow就安装到本地了,我们可以使用airflow initdb来初始化:

这样就在我们刚才配置的主目录里面,有了配置文件和一个初始化的db文件,这个文件就是sqlite产生的数据库文件,airflow内置了sqlite数据库:

可以使用命令:airflow webserver来启动这个服务,-p参数可以指定启动的端口号:

这样我们就可以在浏览器中输入http://0.0.0.0:8080来访问它提供的优美的UI界面:

上面的黄色提示是没有启动sheduler,也就是任务调度的服务,scheduler 是一个守护进程,它周期性地轮询任务的调度计划,以确定是否触发任务执行。启动这个服务,可以使用airflow scheduler命令来启动:

这样那个黄色提示信息就消失了:

这样的UI界面给我们提供了丰富的信息,包括定时任务的列表,执行情况及任务之间的依赖情况等等,功能强大到让你不再为成百上千个定时任务的管理而发愁,先来学着安装一下吧!

你可能感兴趣的:(airflow实现Java定时任务_任务管理调度系统apache-airflow:不再为定时任务的管理而发愁...)