AirFlow 未 运行 时间表
AirFlow not running schedule
我有一个非常简单的 dag,它应该在每个星期一 19:10 运行。 dag如下:
from airflow.models import DAG
from airflow.utils.dates import days_ago
from airflow.operators.bash_operator import BashOperator
args = {'owner': 'AirFlow'}
with DAG(dag_id='schedule_test_weekly', default_args=args, schedule_interval="20 21 * * 1", tags=['Scheduler test'],
start_date=days_ago(2), catchup=False) as dag:
test_scheduler_health = BashOperator(task_id="test_test_weekly", bash_command="echo Hello World", dag=dag)
但是,它不会触发。如果我将 schedule_interval
更改为 schedule_interval="*/5 * * * *"
,它将每 5 分钟 运行 一次,没有问题。但我不能 运行 每个星期一在上述时间。我在网上查了很多指南和帖子。大多数提到执行者应该是 LocalExecutor
并且数据库连接应该设置为 postgres。我有这些配置:
sql_alchemy_conn = postgresql+psycopg2://airflow:pass2@localhost:5432/airflow
sql_alchemy_pool_enabled = True
sql_alchemy_pool_size = 10
executor = LocalExecutor
我还使用 cronhub 检查我的 cron 计划。我认为是正确的。我是不是遗漏了什么或做错了什么?
您的代码中的问题是未正确使用 start_date
。
如果您希望每周工作到 运行 今天(星期一),start_date 需要是上周(星期一)。原因在此.
中解释
因此(假设今天是 2021 年 4 月 5 日)您的 DAG 需要:
with DAG(dag_id='schedule_test_weekly',
default_args=args,
schedule_interval="10 19 * * 1",
tags=['Scheduler test'],
start_date=datetime(2021, 3, 29), # Monday
catchup=False
) as dag:
第一个 运行 将在 2021-04-05
(今天)开始,第 execution_date
个 2021-03-29
。
下一个 运行 将在 2021-04-12
开始,execution_date
共 2021-04-05
,然后以该模式作为每周工作。
我有一个非常简单的 dag,它应该在每个星期一 19:10 运行。 dag如下:
from airflow.models import DAG
from airflow.utils.dates import days_ago
from airflow.operators.bash_operator import BashOperator
args = {'owner': 'AirFlow'}
with DAG(dag_id='schedule_test_weekly', default_args=args, schedule_interval="20 21 * * 1", tags=['Scheduler test'],
start_date=days_ago(2), catchup=False) as dag:
test_scheduler_health = BashOperator(task_id="test_test_weekly", bash_command="echo Hello World", dag=dag)
但是,它不会触发。如果我将 schedule_interval
更改为 schedule_interval="*/5 * * * *"
,它将每 5 分钟 运行 一次,没有问题。但我不能 运行 每个星期一在上述时间。我在网上查了很多指南和帖子。大多数提到执行者应该是 LocalExecutor
并且数据库连接应该设置为 postgres。我有这些配置:
sql_alchemy_conn = postgresql+psycopg2://airflow:pass2@localhost:5432/airflow
sql_alchemy_pool_enabled = True
sql_alchemy_pool_size = 10
executor = LocalExecutor
我还使用 cronhub 检查我的 cron 计划。我认为是正确的。我是不是遗漏了什么或做错了什么?
您的代码中的问题是未正确使用 start_date
。
如果您希望每周工作到 运行 今天(星期一),start_date 需要是上周(星期一)。原因在此
因此(假设今天是 2021 年 4 月 5 日)您的 DAG 需要:
with DAG(dag_id='schedule_test_weekly',
default_args=args,
schedule_interval="10 19 * * 1",
tags=['Scheduler test'],
start_date=datetime(2021, 3, 29), # Monday
catchup=False
) as dag:
第一个 运行 将在 2021-04-05
(今天)开始,第 execution_date
个 2021-03-29
。
下一个 运行 将在 2021-04-12
开始,execution_date
共 2021-04-05
,然后以该模式作为每周工作。