https://prefect.io logo
Title
a

Arlo Bryer

07/16/2020, 9:31 AM
i.e. for a scheduled run of a flow (say every two hours), if a flow that started at t0 is still running when the flow at t1(2h later) should kick off, the t1 flow is delayed until t0 has finished. This then propagating to t2, t3, ..., tn?
j

josh

07/16/2020, 12:19 PM
Hi @Arlo Bryer AFAIK I don’t know of a way to do this with pure schedules (and it would be pretty cool to find a natural place for something like this) 🤔 however there are a couple other options your could implement for this behavior: • Have some sort of starting logic inside your flow where you could either have the last task of your flow create the next flow run or have the first task of the flow check to see if there is currently a flow run for this flow in a
Running
state. • Depending on your use of Cloud you could use something like task concurrency limiting to take advantage of concurrency slots • Adding on to the first point: you could use some external notifier like a row in a DB to essentially grab the “lock” on a run and then release it at the end but it would require some more manual set up
a

Arlo Bryer

07/16/2020, 12:29 PM
@josh - cool, thanks. This is helpful. Quite like the first option actually (for this specific use case). However, as you say, feels like this would also be a cool feature 🙂.