代码走读 airflow 2

1.8.1

 

==================

 

 ================

 

 ============

 

 ===========

 ==========

1 max_threads :同时起这么多个进程处理pyfile
2 file_process_interval:在这么长时间(秒)中,一个文件最多执行一次
3 run_duration:scheduler的循环什么时候退出
4 DagStat中的信息是对DagRun中state的一个统计
5 每个dag都有最大并行执行个数dag.max_active_runs【ruing的个数】
6 dag_dir_list_interval:多长时间去找新增dag和删除的dag
7 DAG的dagrun_timeout属性可以控制dag最长能运行多久
8 DAG的dag_concurrency属性可以控制dag中可以并行执行的task个数
9 max_active_runs(max_active_runs_per_dag)属性控制正在running的dag个数,超过这个个数就不给这个dag起新的dagrun了
10 可以查看models中DAG类的属性来看控制DAG都有哪些方法
11 dagrun所有的taskinstance的状态决定了dagrun的状态,dagrun和taskinstance通过dag_id和execution_date相关联的
12 dag第一次开始执行的时间是:startdate + self._schedule_interval
13 通过表dag_run的run_id属性来判断dagrun是scheduler的还是backfill的
14 JOB_HEARTBEAT_SEC 表示scheduler每个多久心跳一次
15 default queue 有128个槽,即最多并行128个taskinstance
16 localworker将taskinstance状态改成success
17 executor的心跳是将queued_tasks中的任务放到queue中
18 processor_manager 里存了每个dagfile的执行情况

19 通过operator的execution_timeout属性来控制一个task的最长执行时间

20 duration 是总共执行时间:duration = (self.end_date - self.start_date).total_seconds()

21 taskinstance刚创建时状态是None->当运行条件满足时,状态改成scheduler ->当被放到executor的queue_command时,状态改成queue

->当刚进入taskinstance.run函数时,状态改成是running,最后根据执行结果状态改成success或fail

失败后,若想重试,state改成 UP_FOR_RETRY

22  scheduler一共起了PARALLELISM个woker和max_threads个Processing files,所以一共起了PARALLELISM+max_threads个进程

 23  解析py文件的DagFileProcessor的日志目录在/usr/local/airflow/logs/scheduler/下面,分日期,一天一个目录

24 worker通过subprocess.check_call起进程执行task,若task抛出异常或返回非0,如sys.exit(-1),则woker会把taskinstance标记为失败。

25 当一个dag要4分钟才能执行完,但执行频率设为了1分钟,且'max_active_runs':1,应该在10分执行的dag可能被延迟到了13分,dagrun收到的execution_date还是10;

但若catchup=False,则execution_date不再是10

26 每隔 dag_dir_list_interval 秒刷新一次dag文件,若对应的dag文件没有了,则对应的processor要停掉

27 将dag变为simple_dags(dagrun)的日志级别是info,所在目录:/usr/local/airflow/logs/scheduler/2020-04-06  ,返回simple_dags后,子进程退出

28、被停止的dag重新on后,会继续上次运行的dag

29、

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hqxzcy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值