from datetime import datetime, timedelta
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
from airflow.operators.dummy_operator import DummyOperator
from airflow.operators.python_operator import PythonOperator
default_args = {
'owner': 'airflow',
'start_date': datetime(2022, 1, 1),
'depends_on_past': False,
'retries': 1,
'retry_delay': timedelta(minutes=5),
}
dag = DAG(
'my_dag',
default_args=default_args,
schedule_interval='@weekly',
)
def set_start_date():
# 使用datetime计算出每周开始日期
today = datetime.today()
start_date = (today - timedelta(days=today.weekday()))
return start_date
start_operator = PythonOperator(
task_id='set_start_date',
python_callable=set_start_date,
dag=dag,
)
dummy_operator = DummyOperator(
task_id='dummy_operator',
dag=dag,
)
bash_operator = BashOperator(
task_id='bash_operator',
bash_command='echo "Hello, World!"',
dag=dag,
)
start_operator >> dummy_operator >> bash_operator
下一篇:Airflow密码变量