我正在尝试执行一个只需要运行一次的dag。因此,我将dag的执行间隔设置为“@once”。但是,我得到了这个链接中提到的错误- https://issues.apache.org/jira/browse/AIRFLOW-1400
现在我正在尝试传递确切的执行日期,如下所示:
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2017,11,13),
'email': ['airflow@airflow.com'],
'email_on_failure': False,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(seconds=5)
}
dag = DAG(
dag_id='dagNameTest', default_args=default_args, schedule_interval='12 09 13 11 2017',concurrency=1)这是抛出错误,因为:
File "/usr/lib/python2.7/site-packages/croniter/croniter.py", line 543, in expand
expr_format))
CroniterBadCronError: [12 09 13 11 2017] is not acceptable, out of range有人能帮我解决这个问题吗。
谢谢,Arjun
发布于 2017-12-06 01:33:06
你有2017年在“星期几”的位置。试试12 09 13 11 *。您正在尝试在“计划时间间隔”字段中设置“日期”。因此,从技术上讲,这将安排在一年一次。您可以这样运行它,当它完成时,停用DAG。
发布于 2017-12-06 09:48:35
为所需的分钟、小时、日、月和工作日数字设置每年的间隔。即12 09 13 11 *。将DAG的start_date和end_date分别设置在该日期之前和之后,此时应该只运行一次。
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2017,1,1),
'end_date': datetime(2017,12,31),
'email': ['airflow@airflow.com'],
'email_on_failure': False,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(seconds=5)
}
dag = DAG(
dag_id='dagNameTest', default_args=default_args, schedule_interval='12 09 13 11 *',concurrency=1)由于datetime可能会占用您的时间,因此您可以将start_date设置为小时和分钟,然后使用@once调度。但我自己还没试过。
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2017,11,13,9,11),
'email': ['airflow@airflow.com'],
'email_on_failure': False,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(seconds=5)
}
dag = DAG(
dag_id='dagNameTest', default_args=default_args, schedule_interval='@once',concurrency=1)https://stackoverflow.com/questions/47261255
复制相似问题