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 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