From dc55e7cdee268fa447e2830af83ec672ece876b4 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Sat, 18 Jan 2025 08:54:43 -0800 Subject: [PATCH] Schedule jobs * Stalled jobs are checked every 5 minutes * Failed jobs are retried every hour * Old preview jobs are cleaned up daily --- config/initializers/scheduler.rb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 config/initializers/scheduler.rb diff --git a/config/initializers/scheduler.rb b/config/initializers/scheduler.rb new file mode 100644 index 0000000..ec3e92a --- /dev/null +++ b/config/initializers/scheduler.rb @@ -0,0 +1,18 @@ +require 'rufus-scheduler' + +# Don't schedule jobs in test environment or when running rake tasks +unless defined?(Rails::Console) || Rails.env.test? || File.split($0).last == 'rake' + scheduler = Rufus::Scheduler.new + + scheduler.every '5m' do + PreviewGenerationMonitor.check_stalled_jobs + end + + scheduler.every '1h' do + PreviewGenerationMonitor.retry_failed + end + + scheduler.every '1d' do + PreviewGenerationMonitor.cleanup_old_previews + end +end