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 +4 -4
- data/.rbenv-version +1 -0
- data/.ruby-gemset +2 -0
- data/.ruby-version +1 -0
- data/CHANGELOG.md +8 -0
- data/lib/sidekiq_bus/version.rb +1 -1
- data/sidekiq-bus.gemspec +2 -1
- data/spec/adapter/integration_spec.rb +5 -2
- data/spec/sidekiq_bus_spec.rb +1 -1
- data/spec/spec_helper.rb +33 -0
- metadata +24 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 348236e181a0dfa48615334f28f2f9cc866a44fa93d63377c7780190f47f9e82
|
4
|
+
data.tar.gz: db608296c196894b6e793dc5a6b7a5ad41426307ea2e0cf592b75b9cc580e7f4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 865909c8db64b272978af02dcceb551f5f8c5c552ef1cd9e140876bdff8dc4a149385433bebcabe55ecc911a9ef6cd895b31b4d024366b5dee0691ed57bfb6d5
|
7
|
+
data.tar.gz: cb8ca09af0f508755e71f28f3bc7ec212f5380677de55e8c92ea7d6393cc7526103a9a72cd72f274d46da8a9409a0e7772a4a4eec782150eaaa1428f7ad5cfc0
|
data/.rbenv-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
3.2.6
|
data/.ruby-gemset
ADDED
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
|
data/lib/sidekiq_bus/version.rb
CHANGED
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', '
|
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
|
-
|
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)
|
data/spec/sidekiq_bus_spec.rb
CHANGED
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.
|
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:
|
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: '
|
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: '
|
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.
|
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:
|