[
https://issues.apache.org/jira/browse/AIRFLOW-4384?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Víctor Portals updated AIRFLOW-4384:
------------------------------------
Description:
I think it would be useful to include as DAG attribute a list of calendar
events to be excluded from scheduling. I've came across with the need of
excluding specific dates from scheduling, for example holidays, and I think it
could be useful for maintenance windows too.
I've been doing some tests with a custom subclass of DAG. It would accept an
attribute like
exclude_calendar = [\{ start_date: '2019-04-22T10:00:00.000+00:00 ', end_date:
' 2019-04-22T11:00:00.000+00:00' }, \\{ start_date:
'2019-04-22T17:00:00.000+00:00 ', end_date: ' 2019-04-22T18:00:00.000+00:00' }]
Then, when scheduler calls following_schedule function from DAG it would check
if the following scheduled date belongs to any of the time windows included on
exclude_calendar, and if it does, it will jump to the end of the time window,
and check again, and so on until it finds a valid date.
Would be great if it could accept include_calendar too with the inverse
behavior, only scheduling if it belongs to one of the time windows, but I think
excluding will be enough for most use cases.
was:
I think it would be useful to include as DAG attribute a list of calendar
events to be excluded from scheduling. I've came across with the need of
excluding specific dates from scheduling, for example holidays, and I think it
could be useful for maintenance windows too.
I've been doing some tests with a custom subclass of DAG. It would accept an
attribute like
```exclude_calendar = [\{ start_date: '2019-04-22T10:00:00.000+00:00 ',
end_date: ' 2019-04-22T11:00:00.000+00:00' }, \{ start_date:
'2019-04-22T17:00:00.000+00:00 ', end_date: ' 2019-04-22T18:00:00.000+00:00' }]
```
Then, when scheduler calls following_schedule function from DAG it would check
if the following scheduled date belongs to any of the time windows included on
exclude_calendar, and if it does, it will jump to the end of the time window,
and check again, and so on until it finds a valid date.
Would be great if it could accept include_calendar too with the inverse
behavior, only scheduling if it belongs to one of the time windows, but I think
excluding will be enough for most use cases.
> Support exclude from scheduling time windows
> --------------------------------------------
>
> Key: AIRFLOW-4384
> URL: https://issues.apache.org/jira/browse/AIRFLOW-4384
> Project: Apache Airflow
> Issue Type: Improvement
> Components: DAG, scheduler
> Reporter: Víctor Portals
> Priority: Minor
> Labels: calendar, features, scheduler
>
> I think it would be useful to include as DAG attribute a list of calendar
> events to be excluded from scheduling. I've came across with the need of
> excluding specific dates from scheduling, for example holidays, and I think
> it could be useful for maintenance windows too.
> I've been doing some tests with a custom subclass of DAG. It would accept an
> attribute like
> exclude_calendar = [\{ start_date: '2019-04-22T10:00:00.000+00:00 ',
> end_date: ' 2019-04-22T11:00:00.000+00:00' }, \\{ start_date:
> '2019-04-22T17:00:00.000+00:00 ', end_date: ' 2019-04-22T18:00:00.000+00:00'
> }]
> Then, when scheduler calls following_schedule function from DAG it would
> check if the following scheduled date belongs to any of the time windows
> included on exclude_calendar, and if it does, it will jump to the end of the
> time window, and check again, and so on until it finds a valid date.
> Would be great if it could accept include_calendar too with the inverse
> behavior, only scheduling if it belongs to one of the time windows, but I
> think excluding will be enough for most use cases.
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)