HomePhabricator

Get cron schedule from ExternalSchedule rather than the Schedule DB

Description

Get cron schedule from ExternalSchedule rather than the Schedule DB

Summary:
Instead of relying on the (potentially out of date) cron schedule in the schedule DB, use the code/ScheduleDefinition as a source of truth for how often to run. This paves the way for being able to add per-schedule timezones without needing to make a schema change, plus a glorious future where you don't need to run a 'reconcile' command every time you change your schedule.

There are two downsides though:

  • You need to load the schedule on every loop to check (which is kind of a bummer for e.g. a daily schedule - that's a lot of empty checks). There are various optimizations we can do here if that becomes a problem.
  • If there's a load failure and we can't load the schedule for some reason, we no longer have a tick to put it in.

Test Plan: BK

Reviewers: sashank, alangenfeld

Reviewed By: alangenfeld

Differential Revision: https://dagster.phacility.com/D4723

Details

Provenance
dgibsonAuthored on Thu, Oct 8, 3:39 PM
Reviewer
alangenfeld
Differential Revision
D4723: Get cron schedule from ExternalSchedule rather than the Schedule DB
Parents
R1:fb652b6a321f: Make scheduler timezone-aware
Branches
Unknown
Tags
Unknown