Skip to content

Commit

Permalink
BREAKING: support Sidekiq 7+
Browse files Browse the repository at this point in the history
This removes support for Sidekiq < 6.5 and Ruby < 3.0.
  • Loading branch information
dmke committed Nov 18, 2024
1 parent eec44cf commit 88e39f2
Show file tree
Hide file tree
Showing 6 changed files with 23 additions and 20 deletions.
11 changes: 9 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
push:
branches:
- main
- sidekiq-7

jobs:
lint:
Expand All @@ -28,18 +29,24 @@ jobs:
bundle exec stree check Gemfile $(git ls-files '*.rb') $(git ls-files '*.rake') $(git ls-files '*.thor')
test:
name: Ruby ${{ matrix.ruby }}/Sidekiq ${{ matrix.sidekiq }}/Redis ${{ matrix.redis }}
runs-on: ubuntu-latest
timeout-minutes: 5

services:
redis:
image: redis
image: ${{ matrix.redis }}
ports:
- 6379:6379

strategy:
matrix:
ruby: ["3.1", "3.2", "3.3"]
ruby: ["3.0", "3.1", "3.2", "3.3"]
redis: ["redis", "valkey/valkey"]
sidekiq: ["6.5", "7.0", "7.1", "7.2", "7.3"]

env:
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/sidekiq-${{ matrix.sidekiq }}.gemfile

steps:
- uses: actions/checkout@v4
Expand Down
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
# next

- Remove support for Sidekiq < 6.5
- Update minimum Ruby version to 3.0

# 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
Expand Down
13 changes: 2 additions & 11 deletions lib/mini_scheduler.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
require "mini_scheduler/manager"
require "mini_scheduler/distributed_mutex"
require "sidekiq"
require "redis"

begin
require "sidekiq/exception_handler"
Expand All @@ -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
Expand All @@ -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

Expand Down
4 changes: 2 additions & 2 deletions lib/mini_scheduler/manager.rb
Original file line number Diff line number Diff line change
Expand Up @@ -394,10 +394,10 @@ def self.hostname
begin
require "socket"
Socket.gethostname
rescue => e
rescue StandardError
begin
`hostname`.strip
rescue => e
rescue StandardError
"unknown_host"
end
end
Expand Down
4 changes: 2 additions & 2 deletions mini_scheduler.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -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.0.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", ">= 6.5", "< 8.0"

spec.add_development_dependency "pg", "~> 1.0"
spec.add_development_dependency "activesupport", "~> 7.0"
Expand Down
6 changes: 3 additions & 3 deletions spec/mini_scheduler/manager_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -418,17 +418,17 @@ def expect_job_failure(ex, ctx)
class TempSidekiqLogger
attr_accessor :exception, :context

def call(ex, ctx)
def call(ex, ctx, _component)
self.exception = ex
self.context = ctx
end
end

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
Expand Down

0 comments on commit 88e39f2

Please sign in to comment.