diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3c1726e..9f4f0c5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,6 +5,7 @@ on: push: branches: - main + - sidekiq-7 jobs: lint: @@ -33,13 +34,14 @@ jobs: services: redis: - image: redis + image: ${{ matrix.redis }} ports: - 6379:6379 strategy: matrix: - ruby: ["3.1", "3.2", "3.3"] + ruby: ["3.2", "3.3"] + redis: ["redis", "valkey/valkey"] steps: - uses: actions/checkout@v4 diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b2667e..df54bf5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +# next + +- Remove support for Sidekiq < 7 +- Update minimum Ruby version to 3.2 + # 0.17.0 - 2024-08-06 - Add `MiniScheduler::Manager.discover_running_scheduled_jobs` API to allow running scheduled jobs to easily be discovered on the diff --git a/lib/mini_scheduler.rb b/lib/mini_scheduler.rb index fbf217b..e6bea57 100644 --- a/lib/mini_scheduler.rb +++ b/lib/mini_scheduler.rb @@ -5,6 +5,7 @@ require "mini_scheduler/manager" require "mini_scheduler/distributed_mutex" require "sidekiq" +require "redis" begin require "sidekiq/exception_handler" @@ -16,16 +17,6 @@ def self.configure yield self end - class SidekiqExceptionHandler - if defined?(Sidekiq::ExceptionHandler) - extend Sidekiq::ExceptionHandler - else - def self.handle_exception(exception, context) - Sidekiq.handle_exception(exception, context) - end - end - end - def self.job_exception_handler(&blk) @job_exception_handler = blk if blk @job_exception_handler @@ -35,7 +26,7 @@ def self.handle_job_exception(ex, context = {}) if job_exception_handler job_exception_handler.call(ex, context) else - SidekiqExceptionHandler.handle_exception(ex, context) + Sidekiq.default_configuration.handle_exception(ex, context) end end diff --git a/mini_scheduler.gemspec b/mini_scheduler.gemspec index 67e7423..ed97d55 100644 --- a/mini_scheduler.gemspec +++ b/mini_scheduler.gemspec @@ -15,12 +15,12 @@ Gem::Specification.new do |spec| spec.homepage = "https://github.com/discourse/mini_scheduler" spec.license = "MIT" - spec.required_ruby_version = ">= 2.7.0" + spec.required_ruby_version = ">= 3.2.0" spec.files = `git ls-files`.split($/).reject { |s| s =~ /^(spec|\.)/ } spec.require_paths = ["lib"] - spec.add_runtime_dependency "sidekiq", ">= 4.2.3", "< 7.0" + spec.add_runtime_dependency "sidekiq", ">= 7.0", "< 8.0" spec.add_development_dependency "pg", "~> 1.0" spec.add_development_dependency "activesupport", "~> 7.0" diff --git a/spec/mini_scheduler/manager_spec.rb b/spec/mini_scheduler/manager_spec.rb index 5491a99..ab2ce2a 100644 --- a/spec/mini_scheduler/manager_spec.rb +++ b/spec/mini_scheduler/manager_spec.rb @@ -426,9 +426,9 @@ def call(ex, ctx) let(:logger) { TempSidekiqLogger.new } - before { Sidekiq.error_handlers << logger } + before { Sidekiq.default_configuration.error_handlers << logger } - after { Sidekiq.error_handlers.delete(logger) } + after { Sidekiq.default_configuration.error_handlers.delete(logger) } it "captures failed jobs" do manager.blocking_tick