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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 060e761bfed32edcda60a412b31777dc734b1305
4
- data.tar.gz: 37033fd257e5ca11a6b9a1e8cba60ac783403dee
3
+ metadata.gz: a863bbad91a600acef85ae8edef094d7b62fef2c
4
+ data.tar.gz: b190d70f8670247b800141aaa3d7f56860e6f2f4
5
5
  SHA512:
6
- metadata.gz: 26e2afaa8f446be37c6ad32bb7f7901bb3553f71dfbe4232211812a24fc694ae65252950adae16e36bc2aebec8864fbbed77675281b148c681acae2dcb2e3a29
7
- data.tar.gz: a7aba4c5e133877f6ea9bb032e26a852364a7c07c6a4d5fd9ac86026a2f880bbf83a9b05f446f3129ee77a8fa520157243b31e712fbf4f71073a031a694ebb98
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
@@ -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
- # Must reload the schedule to make it present in memory
61
- ::Sidekiq.reload_schedule!
68
+
69
+ ::Sidekiq::Scheduler.instance.update_schedule unless ::Sidekiq::Scheduler.instance.dynamic
62
70
  end
63
71
  end
64
72
  end
@@ -1,3 +1,3 @@
1
1
  module SidekiqBus
2
- VERSION = "0.8.0"
2
+ VERSION = "0.8.1"
3
3
  end
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
- context 'when already setup' do
19
- before { QueueBus.heartbeat! }
18
+ let(:config) { spy('Sidekiq') }
20
19
 
21
- it 'does not change schedule' do
22
- expect { QueueBus.heartbeat! }
23
- .not_to(change { Sidekiq.get_schedule('sidekiqbus_heartbeat') })
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 it does not exist' do
48
- it 'sets the schedule' do
49
- expect { QueueBus.heartbeat! }
50
- .to(change { Sidekiq.get_schedule('sidekiqbus_heartbeat') })
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.0
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-07-31 00:00:00.000000000 Z
11
+ date: 2019-08-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: queue-bus