task 데코레이터 사용시 궁금증이 있습니다.
362
작성한 질문수 4
task 데코레이터를 사용하면서부터 함수호출값을 받게 변경되는 점이 궁금합니다.
변경 전
def foo():
...
py_task = PythonOperator(
python_callable=foo)변경 후
@task(task_id='py_task')
def foo():
...
py_task = foo()
변경 후에는 foo라는 함수원형을 입력하는 것이 아니라 함수를 호출하게 되는데 데코레이터로 감쌌기 때문에 괜찮아지는 건가요?
답변 1
0
안녕하세요 희진님!
네, 질문하신 내용이 맞습니다.
데커레이터로 감싸여진 함수을 호출하면 데커레이터의 효과가 나타납니다.
@task 데커레이터는 감싸고 있는 함수를 호출하면 그 리턴값으로 어떤 airflow의 task 객체가 되게끔 합니다.
그런데 task1 = PythonOperator(task_id='xxx') 와 같이 고전적으로(?) 만든 task1 객체와는 조금 다른 객체에요.
강의에서 다루지만 @task 데커레이터로 만들어진 객체는 함수의 리턴값을 Xcom에 저장하기도 하고 다른 객체가 리턴한 값을 Xcom에서 찾아오는 기능도 갖춘 조금 특별한 객체인 셈이죠.
이해되셨을까요?
0
친절한 답변 감사드립니다 ㅎㅎ
대충 이해했습니다 @task 데커레이터가 정확하게 어떻게 구현되어있는지를 알 수 없어 일단은 넘어가고 강의를 다 듣고 나서도 궁금하면 그 때 airflow에서 코드를 자세하게 찾아보면 될거 같습니다
감사합니다!
pykrx 회원제 전환으로 인한 실습 불가
0
109
2
수료증 발급
0
81
3
에러 발생 관련 질문드립니다.
0
82
2
vscode 작업화면에 오류가 발생하지 않습니다.
0
69
2
plugins 폴더 생성
0
74
2
WSL에서 git push 가 안되요 ㅠ
0
112
2
chatGPT&Airflow로 블로그 자동 포스팅하기 는 Deprecated 가 필요합니다.
0
66
2
github에 회원가입이 안되는데 원인이 뭔지 모르겠어요 ㅠ
0
722
2
설치중인데 venv를 꼭 써야할까요?
0
124
2
설치 버전 관련 질문입니다.
0
68
1
우분투 버전 다운받아야하는데 어떤걸로 설치해야할까요?
0
62
1
DAG 만들기 중 airflow 패키지 로드 에러
0
106
2
3.0에서도 수업노트가 성립하는지 확인 부탁드립니다!
0
95
3
task_id 사용법이 뭔가 바뀐 것 같습니다.
0
76
3
email operator 오류 관련
0
66
2
plugins 폴더 관련
0
96
2
bash operator 관련 문의입니다
0
78
3
스케쥴러 - DAG 파싱 부하 줄이는 과정 질문
0
79
2
Dags refresh 주기 관련 질문
0
123
2
wsl 관련 질문입니다.!
0
73
2
macOS에서 docker 설치
0
93
2
템플릿 변수에 대한 오류
0
61
2
custom_image 디렉토리 문의드립니다.
0
54
2
ETL 인터뷰 관련 문의
0
103
2





