sidekiq-bus 0.8.0 → 0.8.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|