sidekiq-bus 0.9.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
- SHA1:
3
- metadata.gz: 1f2be4d5e020e0a15769b9b1afcf3f7ed36d1d6b
4
- data.tar.gz: 9f1d638cf9f47eb1afa87bb21b8141d2baa27f10
2
+ SHA256:
3
+ metadata.gz: 348236e181a0dfa48615334f28f2f9cc866a44fa93d63377c7780190f47f9e82
4
+ data.tar.gz: db608296c196894b6e793dc5a6b7a5ad41426307ea2e0cf592b75b9cc580e7f4
5
5
  SHA512:
6
- metadata.gz: 1f9783a99bf3c8b0c6fb2df111362d77507d8d245112ec66707e82ee4c172bb78cc28f5e32026adbbb3ca4e1c0f11fc15c27f67cbd79d32545e40b1bb48a424b
7
- data.tar.gz: 66b88100b6068b47ce2f28080eeb4eca7ce5ef669cef9bd71cf195893c43c88a976ccf4040cf0e08d14a45031f4195725079e6da29f1cc5e14a6b03eec3dfb1f
6
+ metadata.gz: 865909c8db64b272978af02dcceb551f5f8c5c552ef1cd9e140876bdff8dc4a149385433bebcabe55ecc911a9ef6cd895b31b4d024366b5dee0691ed57bfb6d5
7
+ data.tar.gz: cb8ca09af0f508755e71f28f3bc7ec212f5380677de55e8c92ea7d6393cc7526103a9a72cd72f274d46da8a9409a0e7772a4a4eec782150eaaa1428f7ad5cfc0
data/.rbenv-version CHANGED
@@ -1 +1 @@
1
- 2.3.4
1
+ 3.2.6
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.3.4
1
+ 3.2.6
data/CHANGELOG.md CHANGED
@@ -6,6 +6,19 @@ 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
+
17
+ ## [1.0.0] - 2025-05-13
18
+
19
+ ### Changed
20
+ - [BREAKING] Updated sidekiq-scheduler to 4.0.3. This adds support for Redis 5 and Sidekiq 6, but removes support for Redis < 4.2 and Sidekiq < 4.X. The dropped versions are long out of support; please use this release to facilitate an update.
21
+
9
22
  ## [0.9.0] - 2019-12-03
10
23
 
11
24
  ### Added
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SidekiqBus
4
- VERSION = '0.9.0'
4
+ VERSION = '1.1.0'
5
5
  end
data/sidekiq-bus.gemspec CHANGED
@@ -17,8 +17,9 @@ 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'])
21
- s.add_dependency('sidekiq-scheduler', '~> 3.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
22
+ s.add_dependency('sidekiq-scheduler', ['>= 3.0', '< 5.0'])
22
23
 
23
24
  s.add_development_dependency("rspec")
24
25
  s.add_development_dependency("fakeredis")
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'spec_helper'
4
- require 'celluloid' if Sidekiq::VERSION < '4'
5
4
  require 'sidekiq/scheduled'
6
5
 
7
6
  describe 'Sidekiq Integration' do
@@ -88,22 +87,17 @@ describe 'Sidekiq Integration' do
88
87
  val = QueueBus.redis { |redis| redis.lpop('queue:bus_incoming') }
89
88
  expect(val).to eq(nil) # nothing really added
90
89
 
91
- if Sidekiq::VERSION < '4'
92
- Sidekiq::Scheduled::Poller.new.poll
93
- else
94
- Sidekiq::Scheduled::Poller.new.enqueue
95
- end
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
96
94
 
97
95
  val = QueueBus.redis { |redis| redis.lpop('queue:bus_incoming') }
98
96
  expect(val).to eq(nil) # nothing added yet
99
97
 
100
98
  # process scheduler in future
101
99
  Timecop.freeze(worktime) do
102
- if Sidekiq::VERSION < '4'
103
- Sidekiq::Scheduled::Poller.new.poll
104
- else
105
- Sidekiq::Scheduled::Poller.new.enqueue
106
- end
100
+ Sidekiq::Scheduled::Poller.new(Sidekiq).enqueue
107
101
 
108
102
  val = QueueBus.redis { |redis| redis.lpop('queue:bus_incoming') }
109
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,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq-bus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Leonard
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2019-12-03 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: queue-bus
@@ -37,9 +36,9 @@ dependencies:
37
36
  - - ">="
38
37
  - !ruby/object:Gem::Version
39
38
  version: 3.0.0
40
- - - "~>"
39
+ - - "<"
41
40
  - !ruby/object:Gem::Version
42
- version: '5.0'
41
+ version: '7.0'
43
42
  type: :runtime
44
43
  prerelease: false
45
44
  version_requirements: !ruby/object:Gem::Requirement
@@ -47,23 +46,43 @@ dependencies:
47
46
  - - ">="
48
47
  - !ruby/object:Gem::Version
49
48
  version: 3.0.0
50
- - - "~>"
49
+ - - "<"
51
50
  - !ruby/object:Gem::Version
52
- 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'
53
66
  - !ruby/object:Gem::Dependency
54
67
  name: sidekiq-scheduler
55
68
  requirement: !ruby/object:Gem::Requirement
56
69
  requirements:
57
- - - "~>"
70
+ - - ">="
58
71
  - !ruby/object:Gem::Version
59
72
  version: '3.0'
73
+ - - "<"
74
+ - !ruby/object:Gem::Version
75
+ version: '5.0'
60
76
  type: :runtime
61
77
  prerelease: false
62
78
  version_requirements: !ruby/object:Gem::Requirement
63
79
  requirements:
64
- - - "~>"
80
+ - - ">="
65
81
  - !ruby/object:Gem::Version
66
82
  version: '3.0'
83
+ - - "<"
84
+ - !ruby/object:Gem::Version
85
+ version: '5.0'
67
86
  - !ruby/object:Gem::Dependency
68
87
  name: rspec
69
88
  requirement: !ruby/object:Gem::Requirement
@@ -211,7 +230,6 @@ files:
211
230
  homepage: https://github.com/queue-bus/sidekiq-bus
212
231
  licenses: []
213
232
  metadata: {}
214
- post_install_message:
215
233
  rdoc_options: []
216
234
  require_paths:
217
235
  - lib
@@ -226,9 +244,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
226
244
  - !ruby/object:Gem::Version
227
245
  version: '0'
228
246
  requirements: []
229
- rubyforge_project:
230
- rubygems_version: 2.5.2
231
- signing_key:
247
+ rubygems_version: 3.6.9
232
248
  specification_version: 4
233
249
  summary: A simple event bus on top of Sidekiq
234
250
  test_files: