2017-11-02 11 views
0

Airflow dag를 만들 때 주기적으로 간단한 일정을 지정합니다. 가장 일반적으로 사용하기를 기대합니다.기류에서 캐치 업 작업에 대한 '예정 시간'을 검색하려면 어떻게해야합니까?

dag = DAG('my_dag', 
     description='this is what it does', 
     schedule_interval='0 12 * * *', 
     start_date=datetime(2017, 10, 1), 
     catchup=False) 

그러면 실제 프로세스에서 매개 변수로 '날짜'를 사용해야하므로 현재 날짜를 확인합니다.

date = datetime.date.today() 
# do some date-sensitive stuff 
operator = MyOperator(..., params=[date, ...]) 

나의 이해는 catchup=True를 설정하면 공기 흐름이 start_date 지금 (또는 end_date) 사이의 모든 일정 구간 내 DAG 일정을 가질 것입니다; 예 : 매일.

내 dag 인스턴스에서 scheduled_date을 어떻게 사용합니까?

답변

1

여기에 실행 날짜가 표시됩니다. 운영자의 매크로를 사용할 수 있습니다. 자세한 내용은 https://airflow.apache.org/code.html#macros입니다. 당신이 date 동적 운영자의 내부

를 생성 한 당신이 할 필요가 없습니다 그래서 공기 흐름은 당신이 예를 PythonOperator를 들어, STR 운영자의 직접

외부에 {{ ds }}를 호출 할 수 있습니다, 그것을 존중, 당신은 provide_context=True이 필요합니다 먼저 함수의 마지막 인수로 **kwargs을 전달하면 kwargs['ds']

+0

으로 전화 할 수 있습니다. 내 마음 속에서 '실행 날짜'는 작업이 실제로 실행되는 시점입니다. 항상 '지금'이지만, 이는 의미 있고 효과적입니다. –