sidekiq-bus 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 866c59dd8c86269bcbf074c6f3ee4e4e4ec0e9de7f80535325a8716265166323
4
- data.tar.gz: 77943838139481632a6647f133fa37e6970a7b4b1cbade052dbf480b46f4dea4
3
+ metadata.gz: 348236e181a0dfa48615334f28f2f9cc866a44fa93d63377c7780190f47f9e82
4
+ data.tar.gz: db608296c196894b6e793dc5a6b7a5ad41426307ea2e0cf592b75b9cc580e7f4
5
5
  SHA512:
6
- metadata.gz: fecd3c6a09178d511def70fae49a6ca050288f40c02491a656a12f3f4b646fb4ff0386c7eb92d806675a1d734db3ec6c92b71f0718eae4f9b4077db2d002cc5a
7
- data.tar.gz: 2632c35bc3e5c09b31d03b632796355dc16005e55bcd875956c4c0ed4b1083540c2744d4308fd8a18a880620cba744a352d7c1a698530f70157dad064422d8bf
6
+ metadata.gz: 865909c8db64b272978af02dcceb551f5f8c5c552ef1cd9e140876bdff8dc4a149385433bebcabe55ecc911a9ef6cd895b31b4d024366b5dee0691ed57bfb6d5
7
+ data.tar.gz: cb8ca09af0f508755e71f28f3bc7ec212f5380677de55e8c92ea7d6393cc7526103a9a72cd72f274d46da8a9409a0e7772a4a4eec782150eaaa1428f7ad5cfc0
data/.rbenv-version ADDED
@@ -0,0 +1 @@
1
+ 3.2.6
data/.ruby-gemset ADDED
@@ -0,0 +1,2 @@
1
+ sidekiq-bus
2
+
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 3.2.6
data/CHANGELOG.md CHANGED
@@ -6,6 +6,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [1.1.0] - 2025-05-13
10
+
11
+ ### Changed
12
+ - [Development] Target supported Ruby version 3.2.6
13
+
14
+ ### Fixed
15
+ - Modifies allowed Sidekiq versions to allow Sidekiq 6 upgrade. 1.0.0 made the requisite code changes but did not modify the gemspec properly.
16
+
9
17
  ## [1.0.0] - 2025-05-13
10
18
 
11
19
  ### Changed
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SidekiqBus
4
- VERSION = '1.0.0'
4
+ VERSION = '1.1.0'
5
5
  end
data/sidekiq-bus.gemspec CHANGED
@@ -17,7 +17,8 @@ Gem::Specification.new do |s|
17
17
  s.require_paths = ["lib"]
18
18
 
19
19
  s.add_dependency('queue-bus', ['>= 0.7', '< 1'])
20
- s.add_dependency('sidekiq', ['>= 3.0.0', '~> 5.0'])
20
+ s.add_dependency('sidekiq', ['>= 3.0.0', '< 7.0'])
21
+ s.add_dependency('rack', "< 3.0") # Sidekiq 6 was sunset before Rack 3.0 and does not support it
21
22
  s.add_dependency('sidekiq-scheduler', ['>= 3.0', '< 5.0'])
22
23
 
23
24
  s.add_development_dependency("rspec")
@@ -87,14 +87,17 @@ describe 'Sidekiq Integration' do
87
87
  val = QueueBus.redis { |redis| redis.lpop('queue:bus_incoming') }
88
88
  expect(val).to eq(nil) # nothing really added
89
89
 
90
- Sidekiq::Scheduled::Poller.new.enqueue
90
+ # NOTE: this is silently invoking a monkey patch in spec_helper
91
+ # since the Poller invokes a Lua script that FakeRedis does not
92
+ # natively support.
93
+ Sidekiq::Scheduled::Poller.new(Sidekiq).enqueue
91
94
 
92
95
  val = QueueBus.redis { |redis| redis.lpop('queue:bus_incoming') }
93
96
  expect(val).to eq(nil) # nothing added yet
94
97
 
95
98
  # process scheduler in future
96
99
  Timecop.freeze(worktime) do
97
- Sidekiq::Scheduled::Poller.new.enqueue
100
+ Sidekiq::Scheduled::Poller.new(Sidekiq).enqueue
98
101
 
99
102
  val = QueueBus.redis { |redis| redis.lpop('queue:bus_incoming') }
100
103
  hash = JSON.parse(val)
@@ -4,7 +4,7 @@ require 'spec_helper'
4
4
 
5
5
  RSpec.describe SidekiqBus do
6
6
  describe '.generate_weighted_queues' do
7
- subject { SidekiqBus.generate_weighted_queues(args) }
7
+ subject { SidekiqBus.generate_weighted_queues(**args) }
8
8
 
9
9
  let(:args) { {} }
10
10
 
data/spec/spec_helper.rb CHANGED
@@ -53,6 +53,39 @@ module QueueBus
53
53
  end
54
54
  end
55
55
 
56
+ class Redis
57
+ module Connection
58
+ class Memory
59
+ def script(*args)
60
+ case args[1]
61
+ when Sidekiq::Scheduled::Enq::LUA_ZPOPBYSCORE
62
+ QueueBus.redis do |redis|
63
+ now = Time.now.to_f
64
+
65
+ # Process both 'schedule' and 'retry' sets
66
+ %w[schedule retry].each do |set_name|
67
+ # Get jobs that are ready to be processed (score <= now)
68
+ jobs = redis.zrangebyscore(set_name, '-inf', now)
69
+
70
+ jobs.each do |job_json|
71
+ # Remove from scheduled set
72
+ redis.zrem(set_name, job_json)
73
+
74
+ # Parse and re-enqueue the job
75
+ job_data = JSON.parse(job_json)
76
+ queue_name = job_data['queue'] || 'default'
77
+ redis.lpush("queue:#{queue_name}", job_json)
78
+ end
79
+ end
80
+ end
81
+ else
82
+ raise "NOSCRIPT - FakeRedis gem does not include Lua support. Please see spec/spec_helper.rb for more information."
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
88
+
56
89
  def test_sub(event_name, queue = 'default')
57
90
  matcher = { 'bus_event_type' => event_name }
58
91
  QueueBus::Subscription.new(queue, event_name, '::QueueBus::Rider', matcher, nil)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq-bus
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Leonard
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-05-13 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: queue-bus
@@ -36,9 +36,9 @@ dependencies:
36
36
  - - ">="
37
37
  - !ruby/object:Gem::Version
38
38
  version: 3.0.0
39
- - - "~>"
39
+ - - "<"
40
40
  - !ruby/object:Gem::Version
41
- version: '5.0'
41
+ version: '7.0'
42
42
  type: :runtime
43
43
  prerelease: false
44
44
  version_requirements: !ruby/object:Gem::Requirement
@@ -46,9 +46,23 @@ dependencies:
46
46
  - - ">="
47
47
  - !ruby/object:Gem::Version
48
48
  version: 3.0.0
49
- - - "~>"
49
+ - - "<"
50
50
  - !ruby/object:Gem::Version
51
- version: '5.0'
51
+ version: '7.0'
52
+ - !ruby/object:Gem::Dependency
53
+ name: rack
54
+ requirement: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - "<"
57
+ - !ruby/object:Gem::Version
58
+ version: '3.0'
59
+ type: :runtime
60
+ prerelease: false
61
+ version_requirements: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - "<"
64
+ - !ruby/object:Gem::Version
65
+ version: '3.0'
52
66
  - !ruby/object:Gem::Dependency
53
67
  name: sidekiq-scheduler
54
68
  requirement: !ruby/object:Gem::Requirement
@@ -176,8 +190,11 @@ extensions: []
176
190
  extra_rdoc_files: []
177
191
  files:
178
192
  - ".gitignore"
193
+ - ".rbenv-version"
179
194
  - ".rspec"
180
195
  - ".rubocop.yml"
196
+ - ".ruby-gemset"
197
+ - ".ruby-version"
181
198
  - CHANGELOG.md
182
199
  - Gemfile
183
200
  - MIT-LICENSE
@@ -227,7 +244,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
227
244
  - !ruby/object:Gem::Version
228
245
  version: '0'
229
246
  requirements: []
230
- rubygems_version: 3.6.6
247
+ rubygems_version: 3.6.9
231
248
  specification_version: 4
232
249
  summary: A simple event bus on top of Sidekiq
233
250
  test_files: