Research

A mix of prior art enumeration and other relevant notes, comparing Supertask to other systems, and enumerating where it draws inspiration from.

Aika

Aika provides date- and time-range parsing utilities for multiple languages.

Go cron

cron is a cron library for Go.

later

later is a JavaScript library for defining recurring schedules and calculating future (or past) occurrences for them. Includes support for using English phrases and Cron schedules. Works in Node and in the browser. Used by Algolia. Thanks for sharing, @msbt.

Nextdoor Scheduler

To replace Cron by the Nextdoor Scheduler, we used the excellent Python module APScheduler to schedule jobs. It enabled us to manage jobs programmatically — we built REST APIs, command line tools, and human-friendly web UI, see also We Don’t Run Cron Jobs at Nextdoor.

pg_timetable

pg_timetable is an advanced job scheduler for PostgreSQL, offering many advantages over traditional schedulers such as cron and others. It is completely database-driven and provides a couple of advanced concepts.

Quartz Job Scheduler

Quartz is a richly featured, open-source job scheduling library that can be integrated within virtually any Java application—from the smallest stand-alone application to the largest e-commerce system.

Timeloop

timeloop is an elegant periodic task executor.

tractor

tractor is a distributed, structured concurrency runtime for Python and friends, built on trio.

VictoriaMetrics

vmalert: Add eval_offset attribute for Groups. If specified, Group will be evaluated at the exact time offset in the range of [0…evaluationInterval]. The setting might be useful for cron-like rules which must be evaluated at specific moments of time. See the issue for details.

Windows PowerShell API

See Scheduling Jobs with the Windows PowerShell API.

Backlog

  • Bash, Python, Java

  • at, cron, systemd timers, Jenkins

  • Grafana, Prometheus, VictoriaMetrics