From f250fa64c79a3374e57a6c98018cc06dd2ad27ef Mon Sep 17 00:00:00 2001 From: Keith Lawrence Date: Thu, 16 May 2024 14:10:22 +0100 Subject: [PATCH] Additional logging and handling for missing schedule errors - Hard to track error in integration where the ProcessPostcodeWorker can't affect the backoff service because it can't see the scheduler. Can't replicate on the console, so add a bit of logging and defaults so that Sentry isn't overwhelmed with this odd error. --- db/schema.rb | 2 +- lib/sidekiq_scheduler_backoff_service.rb | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/db/schema.rb b/db/schema.rb index e15b4f97..a8e6f270 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.0].define(version: 2023_06_05_101124) do +ActiveRecord::Schema[7.1].define(version: 2023_06_05_101124) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" diff --git a/lib/sidekiq_scheduler_backoff_service.rb b/lib/sidekiq_scheduler_backoff_service.rb index 6c864743..58cfcc02 100644 --- a/lib/sidekiq_scheduler_backoff_service.rb +++ b/lib/sidekiq_scheduler_backoff_service.rb @@ -24,10 +24,15 @@ def record_failure def current_interval schedule = Sidekiq.get_schedule[name] Integer(schedule["every"].chop) + rescue StandardError + Rails.logger.error("Queue schedule missing, available schedules: #{Sidekiq.get_schedule.keys.join(", ")}") + "1" end def restart_schedule(target_interval) schedule = Sidekiq.get_schedule[name] Sidekiq.set_schedule(name, schedule.merge("every" => "#{target_interval}s")) + rescue StandardError + Rails.logger.error("Queue schedule missing, available schedules: #{Sidekiq.get_schedule.keys.join(", ")}") end end