yuqian90 commented on a change in pull request #7038: [AIRFLOW-4495] allow externally triggered dags to run for future exec dates URL: https://github.com/apache/airflow/pull/7038#discussion_r363145270
########## File path: airflow/models/dag.py ########## @@ -778,16 +778,26 @@ def set_dependency(self, upstream_task_id, downstream_task_id): def get_task_instances( self, start_date=None, end_date=None, state=None, session=None): if not start_date: + # TODO why 30? start_date = (timezone.utcnow() - timedelta(30)).date() start_date = timezone.make_aware( datetime.combine(start_date, datetime.min.time())) - end_date = end_date or timezone.utcnow() - tis = session.query(TaskInstance).filter( - TaskInstance.dag_id == self.dag_id, - TaskInstance.execution_date >= start_date, - TaskInstance.execution_date <= end_date, - TaskInstance.task_id.in_([t.task_id for t in self.tasks]), - ) + Review comment: Okay this does look necessary. And it's easy to fix. How about adding this property to `class DAG`? ```python class DAG: ... @property def allow_future_exec_dates(self): return conf.getboolean('scheduler', 'RUN_FUTURE_EXEC_DATES', fallback=False) and self.schedule_interval is None ``` This line can become: ```python filters = [TaskInstance.dag_id == self.dag_id, TaskInstance.execution_date >= start_date, TaskInstance.task_id.in_([t.task_id for t in self.tasks])] if end_date or not self.allow_future_exec_dates: end_date = end_date or timezone.utcnow() filters.append(TaskInstance.execution_date <= end_date) tis = session.query(TaskInstance).filter(*filters) ``` And you may want to use `dag.allow_future_exec_dates` in the two other places that you checked the same conditions too, i.e. scheduler_job.py and runnable_exec_date_dep.py ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services