wanlce commented on a change in pull request #21715:
URL: https://github.com/apache/airflow/pull/21715#discussion_r812674759
##########
File path: airflow/timetables/interval.py
##########
@@ -211,6 +217,17 @@ def _align(self, current: DateTime) -> DateTime:
return next_time
return current
+ def _prev_align(self, current: DateTime) -> DateTime:
+ """Get the prev scheduled time.
+
+ This is ``current - interval``, unless ``current`` falls right on the
+ interval boundary, when ``current`` is returned.
+ """
+ prev_time = self._get_prev(current)
+ if self._get_next(prev_time) != current:
+ return prev_time
+ return current
Review comment:
> This seems to be always the same as
`self._get_prev(self._get_next(current))`?
>
> Say a CRON schedule runs one every midnight. For this implementation:
>
> * If `current` is at midnight, the return value is at midnight
> * If `current` is on 1am, the return value is at midnight
>
> For `self._get_prev(self._get_next(current))`:
>
> * If `current` is at midnight, `_get_next` returns the next midnight, and
`_get_prev` returns _this_ midnight
> * If `current` is at 1am, `_get_next` returns the next midnight, and
`_get_prev` returns _this_ midnight
>
> And for the timedelta interval, `self._get_prev(self._get_next(current))`
is always `current`.
>
> So if I’m not mistaken, this function is not needed.
They are different ha
For self._prev_align()
- If current is at 1am, the return value is at midnight
For self._align()
- If current is at 1am, the return value is next midnight.
It is correct that `data_schedule_start` is equal to the `data_schedule_end`
of the previous one when no scheduling time changes. However, when the
scheduling time changes, The first `data_schedule_start` for a new schedule may
not be the same as the `data_schedule_end` before the schedule was changed

--
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.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]