sidekiq_alive 1.1.0 → 2.0.2

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
  SHA256:
3
- metadata.gz: 788fbb3fc817ea121b46363271bcd0f1b814688a92082febf0ccd7432195c03c
4
- data.tar.gz: 6065782d4680efe3c35695b06ef5ca748ef55942c7c0548b8e77fc4a1b413bbb
3
+ metadata.gz: 88b19f6100070c1ec21dcb21c0ffeed162339684ca9151d5f1fc96bc0a08d4c7
4
+ data.tar.gz: 368c75147329255b31de98b83a3ccfa635ff7bb51624777875fc2c00751b0102
5
5
  SHA512:
6
- metadata.gz: c388b1aeffd3967a2c126d9f0a6c1b823ac7ff05eff2d5adbb7900342ffa493fd312cf872888da2753484a8d7b9b84461b44ca500c94412d6d6df5906b011207
7
- data.tar.gz: c06b9d7cac1f92dfcadb02493190003034fdb3b2144ea7c9d2793b5d1773b07be50804c56ad401f46cd73f0c3af16879ef5e670223816282a25fececeaab695f
6
+ metadata.gz: b5aaf5daef764005e61d19b21e30ba9fb811b017ee767e9fb51e832b4186f3f107f6b7001907457bed6a2230f368f3b11b396ee95032d81e5a65b799627af404
7
+ data.tar.gz: 9b3fd7ca0f1218f88f517f78d11221c7e92c71c6776a53a77aacb3567c9a63f343d4473d4a453a116271807e7d249ea99ee81f2763fc44ac792f59502eb36bd4
@@ -5,9 +5,13 @@ cache: bundler
5
5
  rvm:
6
6
  - 2.3.7
7
7
  - 2.4.4
8
- - 2.5.1
8
+ - 2.5.5
9
+ - 2.6.2
9
10
  - ruby-head
10
- before_install: gem install bundler -v 1.16.1
11
+ matrix:
12
+ allow_failures:
13
+ - rvm: ruby-head
14
+ before_install: gem install bundler -v 1.17.3
11
15
  env:
12
16
  global:
13
17
  - CC_TEST_REPORTER_ID=571b470a2b61f8a58b2a0ebbcf297805efa07c548e45bac9d1c9ce0c5edcfc20
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
- source "https://rubygems.org"
1
+ source 'https://rubygems.org'
2
2
 
3
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
3
+ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
4
 
5
5
  # Specify your gem's dependencies in sidekiq_alive.gemspec
6
6
  gemspec
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- sidekiq_alive (1.1.0)
4
+ sidekiq_alive (2.0.2)
5
5
  sidekiq
6
6
  sinatra
7
7
 
@@ -9,47 +9,50 @@ GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
11
  coderay (1.1.2)
12
- concurrent-ruby (1.0.5)
13
- connection_pool (2.2.1)
12
+ connection_pool (2.2.2)
14
13
  diff-lcs (1.3)
15
- method_source (0.9.0)
16
- mock_redis (0.18.0)
17
- pry (0.11.3)
14
+ method_source (0.9.2)
15
+ mock_redis (0.19.0)
16
+ mustermann (1.1.1)
17
+ ruby2_keywords (~> 0.0.1)
18
+ pry (0.12.2)
18
19
  coderay (~> 1.1.0)
19
20
  method_source (~> 0.9.0)
20
- rack (1.6.8)
21
- rack-protection (1.5.3)
21
+ rack (2.0.6)
22
+ rack-protection (2.0.5)
22
23
  rack
23
- rack-test (1.0.0)
24
+ rack-test (1.1.0)
24
25
  rack (>= 1.0, < 3)
25
26
  rake (10.5.0)
26
- redis (3.3.5)
27
- rspec (3.7.0)
28
- rspec-core (~> 3.7.0)
29
- rspec-expectations (~> 3.7.0)
30
- rspec-mocks (~> 3.7.0)
31
- rspec-core (3.7.1)
32
- rspec-support (~> 3.7.0)
33
- rspec-expectations (3.7.0)
27
+ redis (4.1.0)
28
+ rspec (3.8.0)
29
+ rspec-core (~> 3.8.0)
30
+ rspec-expectations (~> 3.8.0)
31
+ rspec-mocks (~> 3.8.0)
32
+ rspec-core (3.8.0)
33
+ rspec-support (~> 3.8.0)
34
+ rspec-expectations (3.8.2)
34
35
  diff-lcs (>= 1.2.0, < 2.0)
35
- rspec-support (~> 3.7.0)
36
- rspec-mocks (3.7.0)
36
+ rspec-support (~> 3.8.0)
37
+ rspec-mocks (3.8.0)
37
38
  diff-lcs (>= 1.2.0, < 2.0)
38
- rspec-support (~> 3.7.0)
39
+ rspec-support (~> 3.8.0)
39
40
  rspec-sidekiq (3.0.3)
40
41
  rspec-core (~> 3.0, >= 3.0.0)
41
42
  sidekiq (>= 2.4.0)
42
- rspec-support (3.7.1)
43
- sidekiq (4.2.10)
44
- concurrent-ruby (~> 1.0)
45
- connection_pool (~> 2.2, >= 2.2.0)
43
+ rspec-support (3.8.0)
44
+ ruby2_keywords (0.0.2)
45
+ sidekiq (5.2.5)
46
+ connection_pool (~> 2.2, >= 2.2.2)
47
+ rack (>= 1.5.0)
46
48
  rack-protection (>= 1.5.0)
47
- redis (~> 3.2, >= 3.2.1)
48
- sinatra (1.4.8)
49
- rack (~> 1.5)
50
- rack-protection (~> 1.4)
51
- tilt (>= 1.3, < 3)
52
- tilt (2.0.9)
49
+ redis (>= 3.3.5, < 5)
50
+ sinatra (2.0.5)
51
+ mustermann (~> 1.0)
52
+ rack (~> 2.0)
53
+ rack-protection (= 2.0.5)
54
+ tilt (~> 2.0)
55
+ tilt (2.0.10)
53
56
 
54
57
  PLATFORMS
55
58
  ruby
@@ -65,4 +68,4 @@ DEPENDENCIES
65
68
  sidekiq_alive!
66
69
 
67
70
  BUNDLED WITH
68
- 1.17.1
71
+ 1.17.3
data/README.md CHANGED
@@ -11,13 +11,30 @@ __How?__
11
11
 
12
12
  A http server is started and on each requests validates that a liveness key is stored in Redis. If it is there means is working.
13
13
 
14
- A Sidekiq worker is the responsable to storing this key. If Sidekiq stops processing workers
14
+ A Sidekiq worker is the responsible to storing this key. If Sidekiq stops processing workers
15
15
  this key gets expired by Redis an consequently the http server will return a 500 error.
16
16
 
17
17
  This worker is responsible to requeue itself for the next liveness probe.
18
18
 
19
19
  Each instance in kubernetes will be checked based on `ENV` variable `HOSTNAME` (kubernetes sets this for each replica/pod).
20
20
 
21
+ On initialization SidekiqAlive will asign to Sidekiq::Worker a queue with the current host and add this queue to the current instance queues to process.
22
+
23
+ example:
24
+
25
+ ```
26
+ hostname: foo
27
+ Worker queue: sidekiq_alive-foo
28
+ instance queues:
29
+ - sidekiq_alive-foo
30
+ *- your queues
31
+
32
+ hostname: bar
33
+ Worker queue: sidekiq_alive-bar
34
+ instance queues:
35
+ - sidekiq_alive-bar
36
+ *- your queues
37
+ ```
21
38
 
22
39
  ## Installation
23
40
 
@@ -35,29 +52,21 @@ Or install it yourself as:
35
52
 
36
53
  $ gem install sidekiq_alive
37
54
 
38
- Run `Sidekiq` with a `sidekiq_alive` queue.
39
-
40
- ```
41
- sidekiq -q sidekiq_alive
42
- ```
43
-
44
- or in your config:
45
55
 
46
- _sidekiq.yml_
47
- ```yaml
48
- queues:
49
- - default
50
- - sidekiq_alive
51
- ```
56
+ ## Usage
52
57
 
53
- __IMPORTANT:__
58
+ SidekiqAlive will start when running `sidekiq` command.
54
59
 
55
- Make sure you run a `quiet` every time before you stop the pods [(issue)](https://github.com/arturictus/sidekiq_alive/issues/10). That's not only important for SidekiqAlive it's important that your workers finish before you stop Sidekiq.
56
- Check [recommended kubernetes setup](#kubernetes-setup)
60
+ Run `Sidekiq`
57
61
 
58
- ## Usage
62
+ ```
63
+ bundle exec sidekiq
64
+ ```
59
65
 
60
- SidekiqAlive will start when running `sidekiq` command.
66
+ ```
67
+ curl localhost:7433
68
+ #=> Alive!
69
+ ```
61
70
 
62
71
 
63
72
  __how to disable?__
@@ -74,6 +83,8 @@ Set `livenessProbe` in your Kubernetes deployment
74
83
 
75
84
  example with recommended setup:
76
85
 
86
+ #### Sidekiq < 6
87
+
77
88
  ```yaml
78
89
  spec:
79
90
  containers:
@@ -108,6 +119,63 @@ spec:
108
119
  terminationGracePeriodSeconds: 60 # put your longest Job time here plus security time.
109
120
  ```
110
121
 
122
+ #### Sidekiq >= 6
123
+
124
+ Create file:
125
+
126
+ _kube/sidekiq_quiet_
127
+
128
+ ```bash
129
+ #!/bin/bash
130
+
131
+ # Find Pid
132
+ SIDEKIQ_PID=$(ps aux | grep sidekiq | grep busy | awk '{ print $2 }')
133
+ # Send TSTP signal
134
+ kill -SIGTSTP $SIDEKIQ_PID
135
+ ```
136
+
137
+ Make it executable:
138
+
139
+ ```
140
+ $ chmod +x kube/sidekiq_quiet
141
+ ```
142
+
143
+ Execute it in your deployment preStop:
144
+
145
+ ```yaml
146
+ spec:
147
+ containers:
148
+ - name: my_app
149
+ image: my_app:latest
150
+ env:
151
+ - name: RAILS_ENV
152
+ value: production
153
+ command:
154
+ - bundle
155
+ - exec
156
+ - sidekiq
157
+ ports:
158
+ - containerPort: 7433
159
+ livenessProbe:
160
+ httpGet:
161
+ path: /
162
+ port: 7433
163
+ initialDelaySeconds: 80 # app specific. Time your sidekiq takes to start processing.
164
+ timeoutSeconds: 5 # can be much less
165
+ readinessProbe:
166
+ httpGet:
167
+ path: /
168
+ port: 7433
169
+ initialDelaySeconds: 80 # app specific
170
+ timeoutSeconds: 5 # can be much less
171
+ lifecycle:
172
+ preStop:
173
+ exec:
174
+ # SIGTERM triggers a quick exit; gracefully terminate instead
175
+ command: ["kube/sidekiq_quiet"]
176
+ terminationGracePeriodSeconds: 60 # put your longest Job time here plus security time.
177
+ ```
178
+
111
179
  ### Outside kubernetes
112
180
 
113
181
  It's just up to you how you want to use it.
@@ -156,17 +224,20 @@ SidekiqAlive.setup do |config|
156
224
  # require 'net/http'
157
225
  # config.callback = proc { Net::HTTP.get("https://status.com/ping") }
158
226
 
159
- # ==> Preferred Queue
160
- # Sidekiq Alive will try to enqueue the workers to this queue. If not found
161
- # will do it to the first available queue.
162
- # It's a good practice to add a dedicated queue for sidekiq alive. If the queue
163
- # where sidekiq is processing SidekiqALive gets overloaded and takes
164
- # longer than the `ttl` to process SidekiqAlive::Worker will make the liveness probe
165
- # to fail. Sidekiq overloaded and restarting every `ttl` cicle.
166
- # Add the sidekiq alive queue!!
227
+ # ==> Queue Prefix
228
+ # SidekiqAlive will run in a independent queue for each instance/replica
229
+ # This queue name will be generated with: "#{queue_prefix}-#{hostname}.
230
+ # You can customize the prefix here.
167
231
  # default: :sidekiq_alive
168
232
  #
169
- # config.preferred_queue = :other
233
+ # config.queue_prefix = :other
234
+
235
+ # ==> Rack server
236
+ # Web server used to run Sinatra
237
+ # default: webrick
238
+ #
239
+ # config.server = 'puma'
240
+
170
241
  end
171
242
  ```
172
243
 
@@ -176,7 +247,7 @@ After checking out the repo, run `bin/setup` to install dependencies. Then, run
176
247
 
177
248
  To install this gem onto your local machine, run `bundle exec rake install`.
178
249
 
179
- Here is a example [rails app](https://github.com/arturictus/sidekiq_alive_example)
250
+ Here is an example [rails app](https://github.com/arturictus/sidekiq_alive_example)
180
251
 
181
252
  ## Contributing
182
253
 
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
3
 
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
6
- task :default => :spec
6
+ task default: :spec
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "bundler/setup"
4
- require "sidekiq_alive"
3
+ require 'bundler/setup'
4
+ require 'sidekiq_alive'
5
5
 
6
6
  # You can add fixtures and/or initialization code here to make experimenting
7
7
  # with your gem easier. You can also use a different console, if you like.
@@ -10,5 +10,5 @@ require "sidekiq_alive"
10
10
  # require "pry"
11
11
  # Pry.start
12
12
 
13
- require "irb"
13
+ require 'irb'
14
14
  IRB.start(__FILE__)
@@ -1,41 +1,42 @@
1
- require "sidekiq"
2
- require "singleton"
3
- require "sidekiq_alive/version"
4
- require "sidekiq_alive/config"
1
+ require 'sidekiq'
2
+ require 'sidekiq/api'
3
+ require 'singleton'
4
+ require 'sidekiq_alive/version'
5
+ require 'sidekiq_alive/config'
5
6
 
6
7
  module SidekiqAlive
7
8
  def self.start
8
- Sidekiq.configure_server do |config|
9
+ SidekiqAlive::Worker.sidekiq_options queue: current_queue
10
+ Sidekiq.configure_server do |sq_config|
9
11
 
10
- SidekiqAlive::Worker.sidekiq_options queue: SidekiqAlive.select_queue(config.options[:queues])
12
+ sq_config.options[:queues] << current_queue
11
13
 
12
- config.on(:startup) do
14
+ sq_config.on(:startup) do
13
15
  SidekiqAlive.tap do |sa|
14
16
  sa.logger.info(banner)
15
17
  sa.register_current_instance
16
18
  sa.store_alive_key
17
19
  sa::Worker.perform_async(hostname)
18
- sa::Server.start
20
+ @server_pid = fork do
21
+ sa::Server.run!
22
+ end
19
23
  sa.logger.info(successful_startup_text)
20
24
  end
21
25
  end
22
26
 
23
- config.on(:quiet) do
27
+ sq_config.on(:quiet) do
24
28
  SidekiqAlive.unregister_current_instance
25
29
  end
26
- config.on(:shutdown) do
30
+ sq_config.on(:shutdown) do
31
+ Process.kill('TERM', @server_pid) unless @server_pid.nil?
32
+ Process.wait(@server_pid) unless @server_pid.nil?
27
33
  SidekiqAlive.unregister_current_instance
28
34
  end
29
35
  end
30
-
31
36
  end
32
37
 
33
- def self.select_queue(queues)
34
- @queue = if queues.find { |e| e.to_sym == config.preferred_queue.to_sym }
35
- config.preferred_queue.to_sym
36
- else
37
- queues.first
38
- end
38
+ def self.current_queue
39
+ "#{config.queue_prefix}-#{hostname}"
39
40
  end
40
41
 
41
42
  def self.register_current_instance
@@ -43,6 +44,9 @@ module SidekiqAlive
43
44
  end
44
45
 
45
46
  def self.unregister_current_instance
47
+ # Delete any pending jobs for this instance
48
+ logger.info(shutdown_info)
49
+ purge_pending_jobs
46
50
  redis.del(current_instance_register_key)
47
51
  end
48
52
 
@@ -50,6 +54,18 @@ module SidekiqAlive
50
54
  redis.keys("#{config.registered_instance_key}::*")
51
55
  end
52
56
 
57
+ def self.purge_pending_jobs
58
+ # TODO:
59
+ # Sidekiq 6 allows better way to find scheduled jobs:
60
+ # https://github.com/mperham/sidekiq/wiki/API#scan
61
+ scheduled_set = Sidekiq::ScheduledSet.new
62
+ jobs = scheduled_set.select { |job| job.klass == 'SidekiqAlive::Worker' && job.queue == current_queue }
63
+ logger.info("[SidekiqAlive] Purging #{jobs.count} pending for #{hostname}")
64
+ jobs.each(&:delete)
65
+ logger.info("[SidekiqAlive] Removing queue #{current_queue}")
66
+ Sidekiq::Queue.new(current_queue).clear
67
+ end
68
+
53
69
  def self.current_instance_register_key
54
70
  "#{config.registered_instance_key}::#{hostname}"
55
71
  end
@@ -57,7 +73,7 @@ module SidekiqAlive
57
73
  def self.store_alive_key
58
74
  redis.set(current_lifeness_key,
59
75
  Time.now.to_i,
60
- { ex: config.time_to_live.to_i })
76
+ ex: config.time_to_live.to_i)
61
77
  end
62
78
 
63
79
  def self.redis
@@ -65,7 +81,7 @@ module SidekiqAlive
65
81
  end
66
82
 
67
83
  def self.alive?
68
- redis.ttl(current_lifeness_key) == -2 ? false : true
84
+ redis.ttl(current_lifeness_key) != -2
69
85
  end
70
86
 
71
87
  # CONFIG ---------------------------------------
@@ -75,7 +91,7 @@ module SidekiqAlive
75
91
  end
76
92
 
77
93
  def self.logger
78
- Sidekiq::Logging.logger
94
+ Sidekiq.logger
79
95
  end
80
96
 
81
97
  def self.config
@@ -90,8 +106,20 @@ module SidekiqAlive
90
106
  ENV['HOSTNAME'] || 'HOSTNAME_NOT_SET'
91
107
  end
92
108
 
109
+ def self.shutdown_info
110
+ <<~BANNER
111
+
112
+ =================== Shutting down SidekiqAlive =================
113
+
114
+ Hostname: #{hostname}
115
+ Liveness key: #{current_lifeness_key}
116
+ Current instance register key: #{current_instance_register_key}
117
+
118
+ BANNER
119
+ end
120
+
93
121
  def self.banner
94
- <<-BANNER.strip_heredoc
122
+ <<~BANNER
95
123
 
96
124
  =================== SidekiqAlive =================
97
125
 
@@ -108,7 +136,7 @@ module SidekiqAlive
108
136
  end
109
137
 
110
138
  def self.successful_startup_text
111
- <<-BANNER.strip_heredoc
139
+ <<~BANNER
112
140
  Registered instances:
113
141
 
114
142
  - #{registered_instances.join("\n\s\s- ")}
@@ -120,11 +148,11 @@ module SidekiqAlive
120
148
  def self.register_instance(instance_name)
121
149
  redis.set(instance_name,
122
150
  Time.now.to_i,
123
- { ex: config.time_to_live.to_i + 60 })
151
+ ex: config.registration_ttl.to_i)
124
152
  end
125
153
  end
126
154
 
127
- require "sidekiq_alive/worker"
128
- require "sidekiq_alive/server"
155
+ require 'sidekiq_alive/worker'
156
+ require 'sidekiq_alive/server'
129
157
 
130
158
  SidekiqAlive.start unless ENV['DISABLE_SIDEKIQ_ALIVE']
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SidekiqAlive
2
4
  class Config
3
5
  include Singleton
@@ -7,7 +9,8 @@ module SidekiqAlive
7
9
  :time_to_live,
8
10
  :callback,
9
11
  :registered_instance_key,
10
- :preferred_queue
12
+ :queue_prefix,
13
+ :server
11
14
 
12
15
  def initialize
13
16
  set_defaults
@@ -18,9 +21,13 @@ module SidekiqAlive
18
21
  @liveness_key = 'SIDEKIQ::LIVENESS_PROBE_TIMESTAMP'
19
22
  @time_to_live = 10 * 60
20
23
  @callback = proc {}
21
- @registered_instance_key = "SIDEKIQ_REGISTERED_INSTANCE"
22
- @preferred_queue = :sidekiq_alive
24
+ @registered_instance_key = 'SIDEKIQ_REGISTERED_INSTANCE'
25
+ @queue_prefix = :sidekiq_alive
26
+ @server = ENV['SIDEKIQ_ALIVE_SERVER'] || 'webrick'
23
27
  end
24
28
 
29
+ def registration_ttl
30
+ @registration_ttl || time_to_live + 60
31
+ end
25
32
  end
26
33
  end
@@ -1,25 +1,16 @@
1
- require "sinatra/base"
2
- require_relative "./config"
1
+ # frozen_string_literal: true
2
+
3
+ require 'sinatra/base'
3
4
  module SidekiqAlive
4
5
  class Server < Sinatra::Base
5
6
  set :bind, '0.0.0.0'
6
-
7
- class << self
8
- def start
9
- set :port, SidekiqAlive.config.port
10
- Thread.start { run! }
11
- end
12
-
13
- def quit!
14
- super
15
- exit
16
- end
17
- end
7
+ set :port, -> { SidekiqAlive.config.port }
8
+ set :server, -> { SidekiqAlive.config.server }
18
9
 
19
10
  get '/' do
20
11
  if SidekiqAlive.alive?
21
12
  status 200
22
- body "Alive!"
13
+ body 'Alive!'
23
14
  else
24
15
  response = "Can't find the alive key"
25
16
  SidekiqAlive.logger.error(response)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SidekiqAlive
2
- VERSION = "1.1.0"
4
+ VERSION = '2.0.2'
3
5
  end
@@ -3,16 +3,10 @@ module SidekiqAlive
3
3
  include Sidekiq::Worker
4
4
  sidekiq_options retry: false
5
5
 
6
- def perform(hostname = SidekiqAlive.hostname)
7
- return unless hostname_registered?(hostname)
8
- if current_hostname == hostname
9
- write_living_probe
10
- # schedule next living probe
11
- self.class.perform_in(config.time_to_live / 2, current_hostname)
12
- else
13
- # requeue for hostname to validate it's own liveness probe
14
- self.class.perform_async(hostname)
15
- end
6
+ def perform(_hostname = SidekiqAlive.hostname)
7
+ write_living_probe
8
+ # schedule next living probe
9
+ self.class.perform_in(config.time_to_live / 2, current_hostname)
16
10
  end
17
11
 
18
12
  def hostname_registered?(hostname)
@@ -27,7 +21,11 @@ module SidekiqAlive
27
21
  # Increment ttl for current registered instance
28
22
  SidekiqAlive.register_current_instance
29
23
  # after callbacks
30
- config.callback.call()
24
+ begin
25
+ config.callback.call
26
+ rescue StandardError
27
+ nil
28
+ end
31
29
  end
32
30
 
33
31
  def current_hostname
@@ -1,16 +1,15 @@
1
-
2
- lib = File.expand_path("../lib", __FILE__)
1
+ lib = File.expand_path('lib', __dir__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require "sidekiq_alive/version"
3
+ require 'sidekiq_alive/version'
5
4
 
6
5
  Gem::Specification.new do |spec|
7
- spec.name = "sidekiq_alive"
6
+ spec.name = 'sidekiq_alive'
8
7
  spec.version = SidekiqAlive::VERSION
9
- spec.authors = ["Artur Pañach"]
10
- spec.email = ["arturictus@gmail.com"]
8
+ spec.authors = ['Artur Pañach']
9
+ spec.email = ['arturictus@gmail.com']
11
10
 
12
- spec.summary = %q{Liveness probe for sidekiq on Kubernetes deployments.}
13
- spec.description = %q{SidekiqAlive offers a solution to add liveness probe of a Sidekiq instance.
11
+ spec.summary = 'Liveness probe for sidekiq on Kubernetes deployments.'
12
+ spec.description = 'SidekiqAlive offers a solution to add liveness probe of a Sidekiq instance.
14
13
 
15
14
  How?
16
15
 
@@ -19,23 +18,23 @@ Gem::Specification.new do |spec|
19
18
  A Sidekiq job is the responsable to storing this key. If Sidekiq stops processing jobs
20
19
  this key gets expired by Redis an consequently the http server will return a 500 error.
21
20
 
22
- This Job is responsible to requeue itself for the next liveness probe.}
23
- spec.homepage = "https://github.com/arturictus/sidekiq_alive"
24
- spec.license = "MIT"
21
+ This Job is responsible to requeue itself for the next liveness probe.'
22
+ spec.homepage = 'https://github.com/arturictus/sidekiq_alive'
23
+ spec.license = 'MIT'
25
24
 
26
25
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
27
26
  f.match(%r{^(test|spec|features)/})
28
27
  end
29
- spec.bindir = "exe"
28
+ spec.bindir = 'exe'
30
29
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
31
- spec.require_paths = ["lib"]
32
-
33
- spec.add_development_dependency "bundler", "~> 1.16"
34
- spec.add_development_dependency "rake", "~> 10.0"
35
- spec.add_development_dependency "rspec", "~> 3.0"
36
- spec.add_development_dependency "rack-test"
37
- spec.add_development_dependency "rspec-sidekiq", "~> 3.0"
38
- spec.add_development_dependency "mock_redis"
39
- spec.add_dependency "sidekiq"
40
- spec.add_dependency "sinatra"
30
+ spec.require_paths = ['lib']
31
+
32
+ spec.add_development_dependency 'bundler', '~> 1.16'
33
+ spec.add_development_dependency 'mock_redis'
34
+ spec.add_development_dependency 'rack-test'
35
+ spec.add_development_dependency 'rake', '~> 10.0'
36
+ spec.add_development_dependency 'rspec', '~> 3.0'
37
+ spec.add_development_dependency 'rspec-sidekiq', '~> 3.0'
38
+ spec.add_dependency 'sidekiq'
39
+ spec.add_dependency 'sinatra'
41
40
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq_alive
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 2.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artur Pañach
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-01-11 00:00:00.000000000 Z
11
+ date: 2020-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -25,49 +25,49 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.16'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rake
28
+ name: mock_redis
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rspec
42
+ name: rack-test
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '3.0'
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '3.0'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rack-test
56
+ name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '10.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '10.0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: rspec-sidekiq
70
+ name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
@@ -81,19 +81,19 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '3.0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: mock_redis
84
+ name: rspec-sidekiq
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: '3.0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: '3.0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: sidekiq
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -175,8 +175,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
175
175
  - !ruby/object:Gem::Version
176
176
  version: '0'
177
177
  requirements: []
178
- rubyforge_project:
179
- rubygems_version: 2.7.6
178
+ rubygems_version: 3.0.3
180
179
  signing_key:
181
180
  specification_version: 4
182
181
  summary: Liveness probe for sidekiq on Kubernetes deployments.