Hi all,

After discussion at the NY Meetup this week I've been pondering how Airflow 
could support custom schedules with very little change to core Airflow logic 
and keeping backwards compatibility.

As I understand the common way to support custom schedules is through a 
BranchOperator. You provide logic that on a good date executes the "run" branch 
and on another date runs the "don't run" branch which usually is a dummy 
operator.

There are 2 problems associated with it which would be useful to me (and I 
think the rest of the community) to solve:

1.       depends_on_past does not play well with branching, because the "run" 
branch tasks get marked as "skipped"

2.       Template variables like "prev_ds" and "next_ds" represent the 
underlying schedule and not the actual schedule you are working on

I therefore propose a "schedule_filter_callback", a function which you provide 
at DAG creation time that takes in some arguments (execution date, timezone, 
DAG?), and returns a Truthy or Falsy result based on if this is a good date to 
execute on. If schedule_filter_callback is None then the current schedule logic 
is applied.

I appreciate this is a fairly significant proposal, but it seems like because 
it would just be 1 extra argument on the DAG and make no change to the default 
behavior it doesn't quite rise to the level of AIP? Sorry if this has already 
been discussed before.

Regards,
Damian


=============================================================================== 
Please access the attached hyperlink for an important electronic communications 
disclaimer: 
http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html 
=============================================================================== 

Reply via email to