Skip to content

Commit 15f93bc

Browse files
authored
Merge pull request #52 from sj26/sidekiq-8
Sidekiq 8
2 parents 33e4622 + a308499 commit 15f93bc

File tree

4 files changed

+28
-6
lines changed

4 files changed

+28
-6
lines changed

.github/workflows/ci.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,13 @@ jobs:
1515
fail-fast: false
1616
matrix:
1717
ruby-version: ['2.7', '3.0', '3.1', '3.2']
18-
bundle-gemfile: ['Gemfile', 'Gemfile.sidekiq-5', 'Gemfile.sidekiq-6', 'Gemfile.sidekiq-6-0', 'Gemfile.sidekiq-7']
18+
bundle-gemfile: ['Gemfile', 'Gemfile.sidekiq-5', 'Gemfile.sidekiq-6', 'Gemfile.sidekiq-6-0', 'Gemfile.sidekiq-7', 'Gemfile.sidekiq-8']
19+
exclude:
20+
# Sidekiq 8 requires ruby >= 3.2
21+
- { bundle-gemfile: 'Gemfile.sidekiq-8', ruby-version: '2.7' }
22+
- { bundle-gemfile: 'Gemfile.sidekiq-8', ruby-version: '3.0' }
23+
- { bundle-gemfile: 'Gemfile.sidekiq-8', ruby-version: '3.1' }
24+
1925

2026
steps:
2127
- uses: actions/checkout@v2

Gemfile.sidekiq-8

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
source "https://rubygems.org"
2+
3+
# Specify your gem's dependencies in sidekiq-cloudwatch.gemspec
4+
gemspec
5+
6+
gem "sidekiq", "~> 8.0"

lib/sidekiq/cloudwatchmetrics.rb

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
module Sidekiq::CloudWatchMetrics
99
def self.enable!(**kwargs)
1010
Sidekiq.configure_server do |config|
11-
publisher = Publisher.new(**kwargs)
11+
publisher = Publisher.new(config: config, **kwargs)
1212

1313
# Sidekiq enterprise has a globally unique leader thread, making it
1414
# easier to publish the cluster-wide metrics from one place.
@@ -45,10 +45,20 @@ class Publisher
4545

4646
DEFAULT_INTERVAL = 60 # seconds
4747

48-
def initialize(config: Sidekiq, client: Aws::CloudWatch::Client.new, namespace: "Sidekiq", process_metrics: true, additional_dimensions: {}, interval: DEFAULT_INTERVAL)
49-
# Sidekiq 6.5+ requires @config, which defaults to the top-level
50-
# `Sidekiq` module, but can be overridden when running multiple Sidekiqs.
48+
private def default_config
49+
# Sidekiq::Config was introduced in sidekiq 7 and has a default
50+
if Sidekiq.respond_to?(:default_configuration)
51+
Sidekiq.default_configuration
52+
else
53+
# in older versions, it's just the `Sidekiq` module
54+
Sidekiq
55+
end
56+
end
57+
58+
def initialize(config: default_config, client: Aws::CloudWatch::Client.new, namespace: "Sidekiq", process_metrics: true, additional_dimensions: {}, interval: DEFAULT_INTERVAL)
59+
# Required by Sidekiq::Component (in sidekiq 6.5+)
5160
@config = config
61+
5262
@client = client
5363
@interval = interval
5464
@namespace = namespace

sidekiq-cloudwatchmetrics.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
1919

2020
spec.required_ruby_version = ">= 2.7"
2121

22-
spec.add_runtime_dependency "sidekiq", ">= 5.0", "< 8.0"
22+
spec.add_runtime_dependency "sidekiq", ">= 5.0", "< 9.0"
2323
spec.add_runtime_dependency "aws-sdk-cloudwatch", "~> 1.6"
2424

2525
spec.add_development_dependency "bundler", "~> 2.2"

0 commit comments

Comments
 (0)