[
https://issues.apache.org/jira/browse/AIRFLOW-1156?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16430007#comment-16430007
]
John Cheng commented on AIRFLOW-1156:
-------------------------------------
Same problem with version 1.9
{code:java}
#!/usr/bin/python3
from airflow.models import DAG
from airflow.operators.dummy_operator import DummyOperator
from datetime import datetime, timedelta
args = {
'owner': 'airflow',
'depends_on_past': False,
'email_on_failure': False,
'email_on_retry': False
}
dag = DAG(
dag_id='dummy',
schedule_interval='*/5 * * * *',
start_date= datetime(2018, 3, 16, 5, 1),
default_args=args,
catchup=False,
dagrun_timeout=timedelta(minutes=2))
dummy = DummyOperator(
task_id='success_exit',
dag=dag
)
{code}
Run the following command at 2018-04-09 02:57
{code:java}
echo "airflow unpause dummy" | at 03:00
{code}
2 DAG runs is triggered
||Execution Date||Operator||Start Date||
|04-09T02:55:00|DummyOperator|04-09T03:00:14.232328|
|04-09T02:50:00|DummyOperator|04-09T03:00:08.060602|
> Using a timedelta object as a Schedule Interval with catchup=False causes the
> start_date to no longer be honored.
> -----------------------------------------------------------------------------------------------------------------
>
> Key: AIRFLOW-1156
> URL: https://issues.apache.org/jira/browse/AIRFLOW-1156
> Project: Apache Airflow
> Issue Type: Bug
> Affects Versions: Airflow 1.8
> Reporter: Zachary Lawson
> Priority: Minor
>
> Currently, in Airflow v1.8, if you set your schedule_interval to a timedelta
> object and set catchup=False, the start_date is no longer honored and the DAG
> is scheduled immediately upon unpausing the DAG. It is then schedule on the
> schedule interval from that point onward. Example below:
> {code}
> from airflow import DAG
> from datetime import datetime, timedelta
> import logging
> from airflow.operators.python_operator import PythonOperator
> default_args = {
> 'owner': 'airflow',
> 'depends_on_past': False,
> 'start_date': datetime(2015, 6, 1),
> }
> dag = DAG('test', default_args=default_args,
> schedule_interval=timedelta(seconds=5), catchup=False)
> def context_test(ds, **context):
> logging.info('testing')
> test_context = PythonOperator(
> task_id='test_context',
> provide_context=True,
> python_callable=context_test,
> dag=dag
> )
> {code}
> If you switch the above over to a CRON expression, the behavior of the
> scheduling is returned to the expected.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)