Run Oban cron jobs only on prod

This commit is contained in:
Claudio Ortolina
2026-03-01 16:00:06 +00:00
parent 0887b260f8
commit 50da389bf9
2 changed files with 23 additions and 21 deletions
+1 -21
View File
@@ -94,27 +94,7 @@ config :phoenix, :json_library, JSON
config :music_library, Oban,
engine: Oban.Engines.Lite,
queues: [default: 10, heavy_writes: 1, music_brainz: 1, discogs: 1, wikipedia: 1, last_fm: 1],
repo: MusicLibrary.BackgroundRepo,
plugins: [
{Oban.Plugins.Cron,
crontab: [
# every 12 hours
{"0 */12 * * *", MusicLibrary.Worker.ApplyScrobbleRules},
{"0 */12 * * *", MusicLibrary.Worker.PruneAssetCache},
# every day at 2 am,
{"0 2 * * *", MusicLibrary.Worker.PruneAssets},
# every day at 3 am,
{"0 3 * * *", MusicLibrary.Worker.RepoVacuum},
# every day at 4 am,
{"0 4 * * *", MusicLibrary.Worker.RepoOptimize},
# every first day of the month, staggered hourly
{"0 6 1 * *", MusicLibrary.Worker.RecordRefreshAllMusicBrainzData},
{"0 7 1 * *", MusicLibrary.Worker.RecordGenerateAllEmbeddings},
{"0 8 1 * *", MusicLibrary.Worker.ArtistRefreshAllMusicBrainzData},
{"0 9 1 * *", MusicLibrary.Worker.ArtistRefreshAllDiscogsData},
{"0 10 1 * *", MusicLibrary.Worker.ArtistRefreshAllWikipediaData}
]}
]
repo: MusicLibrary.BackgroundRepo
# Timing metrics (execution time, queue time) are stored in space-efficient
# quantile sketches. By default, values are recorded in `:native` time units
+22
View File
@@ -15,5 +15,27 @@ config :music_library, monitoring_routes: true
config :error_tracker, enabled: true
config :music_library, Oban,
plugins: [
{Oban.Plugins.Cron,
crontab: [
# every 12 hours
{"0 */12 * * *", MusicLibrary.Worker.ApplyScrobbleRules},
{"0 */12 * * *", MusicLibrary.Worker.PruneAssetCache},
# every day at 2 am,
{"0 2 * * *", MusicLibrary.Worker.PruneAssets},
# every day at 3 am,
{"0 3 * * *", MusicLibrary.Worker.RepoVacuum},
# every day at 4 am,
{"0 4 * * *", MusicLibrary.Worker.RepoOptimize},
# every first day of the month, staggered hourly
{"0 6 1 * *", MusicLibrary.Worker.RecordRefreshAllMusicBrainzData},
{"0 7 1 * *", MusicLibrary.Worker.RecordGenerateAllEmbeddings},
{"0 8 1 * *", MusicLibrary.Worker.ArtistRefreshAllMusicBrainzData},
{"0 9 1 * *", MusicLibrary.Worker.ArtistRefreshAllDiscogsData},
{"0 10 1 * *", MusicLibrary.Worker.ArtistRefreshAllWikipediaData}
]}
]
# Runtime production configuration, including reading
# of environment variables, is done on config/runtime.exs.