티스토리 뷰
728x90
import subprocess
from airflow.operators.python import PythonOperator
from batch.core.const import DUMMY, REPLAY, ___
from batch.core.default_airflow_dag import DefaultAirflowDAG, DagHistory
from batch.util.date_util import today, add_date, FORMAT_YYYY_MM_DD
PARAMS = {
"dag_id": None,
}
def run(command):
try:
result = subprocess.run(
command,
check=True,
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE
)
print("Output:", result.stdout.decode())
except subprocess.CalledProcessError as e:
print("Error Message:", e.stderr.decode())
def airflow_dag_replay(
dag_id,
owner,
start_date,
description,
schedule_interval,
default_args,
tags=[],
args_f=DUMMY,
):
def _replay(**kwargs):
args = args_f()
p = kwargs["params"]
target = args["dag_id"].split(___)[-2] or p["dag_id"].split(___)[-2]
ago = int(args["dag_id"].split(___)[-1] or p["dag_id"].split(___)[-1])
end = today(format=FORMAT_YYYY_MM_DD)
start = add_date(end, -ago, FORMAT_YYYY_MM_DD)
run(f"airflow dags clear -s {start} -e {end} {target}")
run(f"airflow dags backfill -s {start} -e {end} {target}")
dag = DefaultAirflowDAG(
dag_id,
description=description,
schedule_interval=schedule_interval,
default_args=default_args,
tags=tags + [REPLAY],
history=[
DagHistory(
start_date,
owner,
"Init",
)
],
params=PARAMS
)
PythonOperator(
task_id="replay",
python_callable=_replay,
provide_context=True,
dag=dag
)
return dag
728x90
'공부' 카테고리의 다른 글
[JUnit] Parameterized (0) | 2024.04.04 |
---|---|
[sql] update & join (0) | 2024.04.04 |
[github] peter-evans/create-pull-request (0) | 2024.04.03 |
[spring] server.shutdown=graceful (0) | 2024.04.03 |
[Thymeleaf] CSS add class (0) | 2024.04.03 |
댓글
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 테슬라 리퍼럴 코드
- Kluge
- 모델 Y 레퍼럴
- 메디파크 내과 전문의 의학박사 김영수
- 인스타그램
- 테슬라 레퍼럴 적용 확인
- 테슬라 크레딧 사용
- wlw
- 테슬라 레퍼럴 코드 확인
- 책그림
- 레퍼럴
- 유투브
- 테슬라 리퍼럴 코드 생성
- 클루지
- 모델y
- 테슬라 리퍼럴 코드 혜택
- COUNT
- 김달
- follower
- 개리마커스
- 테슬라 추천
- 연애학개론
- Bot
- 할인
- 어떻게 능력을 보여줄 것인가?
- 팔로워 수 세기
- 테슬라 레퍼럴
- 테슬라
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함