Just an FYI: @Ash Berlin-Taylor <a...@apache.org> has a WIP PR
<https://github.com/apache/airflow/pull/9052> based on
https://github.com/apache/airflow/pull/2460 to show next execution date on
the Webserver

On Mon, Jun 1, 2020 at 2:19 PM Mauricio De Diana <mdedi...@gmail.com> wrote:

> Hi all,
>
> Thanks for the opinions and ideas, really helpful.
>
> I agree that being able to visualize intervals should be a priority.
> Just to get a feel of how it could be done, I implemented something in
> the CLI: https://github.com/apache/airflow/pull/9072 (thanks Tomek and
> Kamil for the reviews). But I think something on the web UI would be
> more convenient and consequently safer for users. I'm going to give it
> a try. I'll start by checking the related PRs mentioned by Ash. Such a
> view can also help to explore corner cases.
>
> I created a WIP PR to see how the support for multiple crons would
> look like: https://github.com/apache/airflow/pull/9091. The main idea
> is to use a class which is a composite of croniters. The first commit
> is what I was able to do with minimal code changes. The second commit
> replaces croniter with the new class in other parts of the code. I
> think it is better encapsulation of the crontab concept, but it has a
> larger potential to break things, particularly because of the change
> in interval normalization.
>
> It seems to me that any class providing get_next(), get_prev() and
> is_fixed_schedule() could work as a drop in replacement of this new
> class, so it shouldn't be too hard to add support to something like
> the "Every Business Day" example given by Damian later on. I'm just
> mentioning it to keep that in mind if such flexibility is desirable at
> some point, I wouldn't implement that now.
>
> So next step for me is to do some work on visualization. Meanwhile,
> please let me know if you think this is the way to go or if I should
> be looking into something different, ideas are always welcome.
>
> --
> Mauricio
>
> On Thu, May 28, 2020 at 9:31 AM Bas Harenslak
> <basharens...@godatadriven.com.invalid> wrote:
> >
> > I think this is a very valid use case, so +1 from me.
> >
> > The code logic is IMO pretty straight-forward: take the min(expr1,
> expr2, expr3, …) to compute the next interval.
> > From the human point of view, it might become complex as Jarek says, but
> that’s up to the developer.
> >
> > And also: a “helper” view in the UI visualizing the next schedules would
> be very helpful! E.g. a separate view to test scheduling expressions, or
> just a pop-up in the DAG to show the next X scheduled times.
> >
> > Bas
> >
> > > On 28 May 2020, at 14:12, Jarek Potiuk <jarek.pot...@polidea.com>
> wrote:
> > >
> > > I am for it as long as we can thoroughly test the edge cases and maybe
> have
> > > some way to visualize resulting "data intervals" in this case.
> > >
> > > I think big part of Airflow is that it is not just a "scheduled job"
> > > engine, but that it works on data intervals that are defined by the
> > > schedules.
> > > With regular schedules. it's fairly easy to reason about what data
> > > intervals Airflow works on, but with complex multi-cron job
> expressions it
> > > will become much less obvious
> > >
> > > In the example you mentioned above - - Mauricio - "every 10 min between
> > > 16:30 and 18:10" we will have 10x  10 minutes data intervals ending at
> > > 16:40, 16:50, 17:00, 17:10, 17:20, 17:30, 17:40, 17:50, 18:00, 18:10
> and
> > > one ~ 22.5h interval between 18:10 and 16:30 next day.
> > >
> > > This is a simple example of course and it is currently also possible
> for
> > > fixed hours in cron, but I can imagine if we introduce the capability
> of
> > > multiple cron job expressions that introduce arbitrary complex
> schedules,
> > > the schedules might be super-difficult to reason about if you start
> mixing
> > > them.
> > >
> > > I think it is fine if the users want to do it, but also for the
> convenience
> > > of the users themselves. maybe there should be some way (Web UI? CLI?)
> > > where you can take such a schedule and see the data intervals you can
> > > expect to have?
> > >
> > > WDYT?
> > >
> > > J.
> > >
> > > On Thu, May 28, 2020 at 2:37 AM Shaw, Damian P. <
> > > damian.sha...@credit-suisse.com> wrote:
> > >
> > >> Big +1 to anything that extends the limitations of Airflow's current
> > >> scheduling capability.
> > >>
> > >> For me the only drawback of this is it doesn't go far enough and
> further
> > >> additions would needed to be added later, it would still be difficult
> to
> > >> express things that require updatable calendars like "Every Business
> Day"
> > >> or things which are hard to express even with composible crontabs
> likes
> > >> "The first week day of the month".
> > >>
> > >> But if this is an easy win I hope it's taken seriously.
> > >>
> > >> Damian.
> > >>
> > >> -----Original Message-----
> > >> From: Mauricio De Diana <mdedi...@gmail.com>
> > >> Sent: Wednesday, May 27, 2020 14:27
> > >> To: dev@airflow.apache.org
> > >> Subject: Support for multiple cron expressions
> > >>
> > >> Hello all,
> > >>
> > >> At the moment some schedules are not possible in Airflow, for example,
> > >> "every 10 min between 16:30 and 18:10". Such schedules would be
> possible if
> > >> Airflow supported multiple cron expressions, as described in
> > >> https://github.com/apache/airflow/issues/8649. In the issue, I was
> > >> suggested to bring the discussion here because this may not be a
> desirable
> > >> feature.
> > >>
> > >> In terms of implementation, I gave the idea a try and I have something
> > >> working. For that, besides str, timedelta and relativedelta, a
> schedule
> > >> interval can also be a list of strings representing cron expressions.
> There
> > >> is a class that is a composite of croniter objects and providing the
> same
> > >> methods. It works seamlessly for one or many cron expressions, so
> changes
> > >> in the scheduler code are mostly replacing croniter with this class.
> > >>
> > >> I can create a PR if there is interest in discussing the
> implementation,
> > >> but first I would like to learn opinions about this feature? Is it an
> idea
> > >> worth following?
> > >>
> > >> Thanks,
> > >> Mauricio
> > >>
> > >>
> > >>
> > >>
> ===============================================================================
> > >>
> > >> Please access the attached hyperlink for an important electronic
> > >> communications disclaimer:
> > >> http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html
> > >>
> ===============================================================================
> > >>
> > >>
> > >
> > >
> > > --
> > >
> > > Jarek Potiuk
> > > Polidea <https://www.polidea.com/> | Principal Software Engineer
> > >
> > > M: +48 660 796 129 <+48660796129>
> > > [image: Polidea] <https://www.polidea.com/>
> >
>

Reply via email to