Runtime cron management, persisted in the database, fired leaderlessly by every node with per-slot dedup — change schedules without deploys.
Belay.Crons.put(MyApp.Belay, "digest", "0 8 * * 1-5", MyApp.Digest,
input: %{"edition" => "morning"})
Belay.Crons.pause(MyApp.Belay, "digest")
Belay.Crons.resume(MyApp.Belay, "digest")
Belay.Crons.delete(MyApp.Belay, "digest")Dynamic entries are merged with the static crons: config on every
scheduler tick; a dynamic entry with the same name overrides the static one.
Summary
Functions
Delete a dynamic cron entry.
List dynamic cron entries.
Pause a dynamic cron entry.
Create or update a cron entry. The expression is validated eagerly.
Resume a dynamic cron entry.
Functions
@spec delete(GenServer.name(), String.t()) :: :ok
Delete a dynamic cron entry.
@spec list(GenServer.name()) :: [map()]
List dynamic cron entries.
@spec pause(GenServer.name(), String.t()) :: :ok
Pause a dynamic cron entry.
@spec put(GenServer.name(), String.t(), String.t(), module(), keyword()) :: :ok
Create or update a cron entry. The expression is validated eagerly.
@spec resume(GenServer.name(), String.t()) :: :ok
Resume a dynamic cron entry.