From 50da389bf933b0c64ef1191136a9806c4698d199 Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Sun, 1 Mar 2026 16:00:06 +0000 Subject: [PATCH] Run Oban cron jobs only on prod --- config/config.exs | 22 +--------------------- config/prod.exs | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/config/config.exs b/config/config.exs index 8ecc89b2..3444203f 100644 --- a/config/config.exs +++ b/config/config.exs @@ -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 diff --git a/config/prod.exs b/config/prod.exs index 722304e4..292a59df 100644 --- a/config/prod.exs +++ b/config/prod.exs @@ -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.