sidekiq-bus 0.8.0 → 0.8.1
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/CHANGELOG.md +5 -0
- data/lib/sidekiq_bus/adapter.rb +10 -2
- data/lib/sidekiq_bus/version.rb +1 -1
- data/spec/adapter_spec.rb +41 -11
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a863bbad91a600acef85ae8edef094d7b62fef2c
|
4
|
+
data.tar.gz: b190d70f8670247b800141aaa3d7f56860e6f2f4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a5394ae7f51b10a9bd13b64d28aec02e9199b2f2773314d91330cee471769f51c3680974ae2c9056deeb68185ebc529156343e31089838ed8ea0e9c59d0f9736
|
7
|
+
data.tar.gz: 8c676a81ff6cf08a321712aa2fab208247fc88e453ba3eb576248932588e4cc528fc9d7c7779c60560bde0e972e17c257f277ad3401dad880a888ac97d12db36
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
6
6
|
|
7
7
|
## [Unreleased]
|
8
8
|
|
9
|
+
### [0.8.1] - 2019-08-05
|
10
|
+
|
11
|
+
### Fixed
|
12
|
+
- Schedule is now setup correctly for dyanmic schedules and non-dynamic
|
13
|
+
|
9
14
|
## [0.8.0] - 2019-07-31
|
10
15
|
|
11
16
|
### Added
|
data/lib/sidekiq_bus/adapter.rb
CHANGED
@@ -47,6 +47,14 @@ module QueueBus
|
|
47
47
|
def setup_heartbeat!(queue_name)
|
48
48
|
require 'sidekiq-scheduler'
|
49
49
|
|
50
|
+
::Sidekiq.configure_server do |config|
|
51
|
+
config.on(:startup) { set_schedule(queue_name) }
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
private
|
56
|
+
|
57
|
+
def set_schedule(queue_name)
|
50
58
|
::Sidekiq.set_schedule(
|
51
59
|
'sidekiqbus_heartbeat',
|
52
60
|
every: '1min',
|
@@ -57,8 +65,8 @@ module QueueBus
|
|
57
65
|
queue: queue_name,
|
58
66
|
description: 'Enqueues a heart beat every minute for the queue-bus'
|
59
67
|
)
|
60
|
-
|
61
|
-
::Sidekiq.
|
68
|
+
|
69
|
+
::Sidekiq::Scheduler.instance.update_schedule unless ::Sidekiq::Scheduler.instance.dynamic
|
62
70
|
end
|
63
71
|
end
|
64
72
|
end
|
data/lib/sidekiq_bus/version.rb
CHANGED
data/spec/adapter_spec.rb
CHANGED
@@ -15,17 +15,32 @@ describe 'adapter is set' do
|
|
15
15
|
end
|
16
16
|
|
17
17
|
describe '.setup_heartbeat!' do
|
18
|
-
|
19
|
-
before { QueueBus.heartbeat! }
|
18
|
+
let(:config) { spy('Sidekiq') }
|
20
19
|
|
21
|
-
|
22
|
-
|
23
|
-
|
20
|
+
around do |example|
|
21
|
+
begin
|
22
|
+
old = Sidekiq.options[:lifecycle_events][:startup]
|
23
|
+
Sidekiq.options[:lifecycle_events][:startup] = []
|
24
|
+
example.run
|
25
|
+
ensure
|
26
|
+
Sidekiq.options[:lifecycle_events][:startup] = old
|
24
27
|
end
|
28
|
+
end
|
29
|
+
|
30
|
+
before do
|
31
|
+
# This configuration must think it's running on the server.
|
32
|
+
allow(Sidekiq).to receive(:server?).and_return(true)
|
33
|
+
|
34
|
+
# Turn on heartbeats
|
35
|
+
QueueBus.heartbeat!
|
25
36
|
|
37
|
+
# Need to have the schedule loaded before we load anything new
|
38
|
+
Sidekiq::Scheduler.instance.load_schedule!
|
39
|
+
end
|
40
|
+
|
41
|
+
shared_examples 'a scheduled heartbeat' do
|
26
42
|
it 'has the schedule for every minute' do
|
27
|
-
expect(Sidekiq.get_schedule('sidekiqbus_heartbeat')['every'])
|
28
|
-
.to eq '1min'
|
43
|
+
expect(Sidekiq.get_schedule('sidekiqbus_heartbeat')['every']).to eq '1min'
|
29
44
|
end
|
30
45
|
|
31
46
|
it 'has scheduled the queue bus worker' do
|
@@ -44,11 +59,26 @@ describe 'adapter is set' do
|
|
44
59
|
end
|
45
60
|
end
|
46
61
|
|
47
|
-
context 'when
|
48
|
-
|
49
|
-
|
50
|
-
|
62
|
+
context 'when dynamic' do
|
63
|
+
before do
|
64
|
+
allow(Sidekiq::Scheduler.instance).to receive(:dynamic).and_return(true)
|
65
|
+
|
66
|
+
# Simulate running startup events
|
67
|
+
Sidekiq.options[:lifecycle_events][:startup].each(&:call)
|
68
|
+
end
|
69
|
+
|
70
|
+
it_behaves_like 'a scheduled heartbeat'
|
71
|
+
end
|
72
|
+
|
73
|
+
context 'when non-dynamic' do
|
74
|
+
before do
|
75
|
+
allow(Sidekiq::Scheduler.instance).to receive(:dynamic).and_return(false)
|
76
|
+
|
77
|
+
# Simulate running startup events
|
78
|
+
Sidekiq.options[:lifecycle_events][:startup].each(&:call)
|
51
79
|
end
|
80
|
+
|
81
|
+
it_behaves_like 'a scheduled heartbeat'
|
52
82
|
end
|
53
83
|
end
|
54
84
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sidekiq-bus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Leonard
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-08-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: queue-bus
|