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 +5 -5
- data/.rbenv-version +1 -1
- data/.ruby-version +1 -1
- data/CHANGELOG.md +13 -0
- data/lib/sidekiq_bus/version.rb +1 -1
- data/sidekiq-bus.gemspec +3 -2
- data/spec/adapter/integration_spec.rb +5 -11
- data/spec/sidekiq_bus_spec.rb +1 -1
- data/spec/spec_helper.rb +33 -0
- metadata +29 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
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
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
3.2.6
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
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
|
data/lib/sidekiq_bus/version.rb
CHANGED
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', '
|
21
|
-
s.add_dependency('
|
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
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
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
|
-
|
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)
|
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,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sidekiq-bus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
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:
|
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: '
|
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: '
|
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
|
-
|
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:
|