What libraries exist for managing / executing period jobs (like cron)

I’m looking for an elixir application that will run and execute various jobs at defined intervals, a bit like a cron. Ideally with some kind of UI for reporting success/stats.

Any recommendations? I’m struggling to find projects that do this.

Edit: I’ve found Quantum and Citrine so far. Neither of which has the UI / stats side of things.

GitHub - sorentwo/oban: 💎 Robust job processing in Elixir, backed by modern PostgreSQL does that afaik

1 Like

Hmmmm, I had discounted Oban because it’s designed for scaled-up job queue processing. But that doesn’t mean it can’t run a few single scheduled jobs too…

Thanks, I’ll dig in further.

It works great for small scale scheduled jobs, too. It has a built in cron-based scheduler (see Oban.Plugins.Cron — Oban v2.13.1), or you can handle your own periodic scheduling by inserting the next job in a series using the :scheduled_at option as the first step in your job execution. The pattern is explained here: Reliable Scheduled Jobs — Oban v2.13.1, but you would use scheduled_at rather than scheduled_in

If you go the second route, there are a few useful tools in the crontab library to calculate the run dates - see Crontab.Scheduler — crontab v1.1.11