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

Reply via email to