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

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

204155913_1_20201010031600313

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

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

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

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

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

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

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

204155913_2_20201010031600548

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

204155913_3_20201010031600641

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

204155913_4_20201010031600876

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

204155913_5_20201010031600970

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

204155913_6_2020101003160195

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

204155913_7_20201010031601157

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

204155913_8_20201010031601298

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

204155913_9_20201010031601345

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值