sidekiq_alive 2.0.1 → 2.0.2
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/Gemfile +2 -2
- data/Gemfile.lock +5 -3
- data/README.md +9 -3
- data/Rakefile +3 -3
- data/bin/console +3 -3
- data/lib/sidekiq_alive/config.rb +6 -2
- data/lib/sidekiq_alive/server.rb +3 -0
- data/lib/sidekiq_alive/version.rb +3 -1
- data/lib/sidekiq_alive/worker.rb +6 -2
- data/sidekiq_alive.gemspec +21 -22
- metadata +24 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 88b19f6100070c1ec21dcb21c0ffeed162339684ca9151d5f1fc96bc0a08d4c7
|
4
|
+
data.tar.gz: 368c75147329255b31de98b83a3ccfa635ff7bb51624777875fc2c00751b0102
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b5aaf5daef764005e61d19b21e30ba9fb811b017ee767e9fb51e832b4186f3f107f6b7001907457bed6a2230f368f3b11b396ee95032d81e5a65b799627af404
|
7
|
+
data.tar.gz: 9b3fd7ca0f1218f88f517f78d11221c7e92c71c6776a53a77aacb3567c9a63f343d4473d4a453a116271807e7d249ea99ee81f2763fc44ac792f59502eb36bd4
|
data/Gemfile
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
source
|
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
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
sidekiq_alive (2.0.
|
4
|
+
sidekiq_alive (2.0.2)
|
5
5
|
sidekiq
|
6
6
|
sinatra
|
7
7
|
|
@@ -13,7 +13,8 @@ GEM
|
|
13
13
|
diff-lcs (1.3)
|
14
14
|
method_source (0.9.2)
|
15
15
|
mock_redis (0.19.0)
|
16
|
-
mustermann (1.
|
16
|
+
mustermann (1.1.1)
|
17
|
+
ruby2_keywords (~> 0.0.1)
|
17
18
|
pry (0.12.2)
|
18
19
|
coderay (~> 1.1.0)
|
19
20
|
method_source (~> 0.9.0)
|
@@ -40,6 +41,7 @@ GEM
|
|
40
41
|
rspec-core (~> 3.0, >= 3.0.0)
|
41
42
|
sidekiq (>= 2.4.0)
|
42
43
|
rspec-support (3.8.0)
|
44
|
+
ruby2_keywords (0.0.2)
|
43
45
|
sidekiq (5.2.5)
|
44
46
|
connection_pool (~> 2.2, >= 2.2.2)
|
45
47
|
rack (>= 1.5.0)
|
@@ -50,7 +52,7 @@ GEM
|
|
50
52
|
rack (~> 2.0)
|
51
53
|
rack-protection (= 2.0.5)
|
52
54
|
tilt (~> 2.0)
|
53
|
-
tilt (2.0.
|
55
|
+
tilt (2.0.10)
|
54
56
|
|
55
57
|
PLATFORMS
|
56
58
|
ruby
|
data/README.md
CHANGED
@@ -123,7 +123,7 @@ spec:
|
|
123
123
|
|
124
124
|
Create file:
|
125
125
|
|
126
|
-
|
126
|
+
_kube/sidekiq_quiet_
|
127
127
|
|
128
128
|
```bash
|
129
129
|
#!/bin/bash
|
@@ -172,7 +172,7 @@ spec:
|
|
172
172
|
preStop:
|
173
173
|
exec:
|
174
174
|
# SIGTERM triggers a quick exit; gracefully terminate instead
|
175
|
-
command: ["kube
|
175
|
+
command: ["kube/sidekiq_quiet"]
|
176
176
|
terminationGracePeriodSeconds: 60 # put your longest Job time here plus security time.
|
177
177
|
```
|
178
178
|
|
@@ -227,11 +227,17 @@ SidekiqAlive.setup do |config|
|
|
227
227
|
# ==> Queue Prefix
|
228
228
|
# SidekiqAlive will run in a independent queue for each instance/replica
|
229
229
|
# This queue name will be generated with: "#{queue_prefix}-#{hostname}.
|
230
|
-
# You can customize the prefix here.
|
230
|
+
# You can customize the prefix here.
|
231
231
|
# default: :sidekiq_alive
|
232
232
|
#
|
233
233
|
# config.queue_prefix = :other
|
234
234
|
|
235
|
+
# ==> Rack server
|
236
|
+
# Web server used to run Sinatra
|
237
|
+
# default: webrick
|
238
|
+
#
|
239
|
+
# config.server = 'puma'
|
240
|
+
|
235
241
|
end
|
236
242
|
```
|
237
243
|
|
data/Rakefile
CHANGED
data/bin/console
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
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
|
13
|
+
require 'irb'
|
14
14
|
IRB.start(__FILE__)
|
data/lib/sidekiq_alive/config.rb
CHANGED
@@ -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
|
-
:queue_prefix
|
12
|
+
:queue_prefix,
|
13
|
+
:server
|
11
14
|
|
12
15
|
def initialize
|
13
16
|
set_defaults
|
@@ -20,10 +23,11 @@ module SidekiqAlive
|
|
20
23
|
@callback = proc {}
|
21
24
|
@registered_instance_key = 'SIDEKIQ_REGISTERED_INSTANCE'
|
22
25
|
@queue_prefix = :sidekiq_alive
|
26
|
+
@server = ENV['SIDEKIQ_ALIVE_SERVER'] || 'webrick'
|
23
27
|
end
|
24
28
|
|
25
29
|
def registration_ttl
|
26
|
-
@registration_ttl
|
30
|
+
@registration_ttl || time_to_live + 60
|
27
31
|
end
|
28
32
|
end
|
29
33
|
end
|
data/lib/sidekiq_alive/server.rb
CHANGED
@@ -1,8 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'sinatra/base'
|
2
4
|
module SidekiqAlive
|
3
5
|
class Server < Sinatra::Base
|
4
6
|
set :bind, '0.0.0.0'
|
5
7
|
set :port, -> { SidekiqAlive.config.port }
|
8
|
+
set :server, -> { SidekiqAlive.config.server }
|
6
9
|
|
7
10
|
get '/' do
|
8
11
|
if SidekiqAlive.alive?
|
data/lib/sidekiq_alive/worker.rb
CHANGED
@@ -3,7 +3,7 @@ module SidekiqAlive
|
|
3
3
|
include Sidekiq::Worker
|
4
4
|
sidekiq_options retry: false
|
5
5
|
|
6
|
-
def perform(
|
6
|
+
def perform(_hostname = SidekiqAlive.hostname)
|
7
7
|
write_living_probe
|
8
8
|
# schedule next living probe
|
9
9
|
self.class.perform_in(config.time_to_live / 2, current_hostname)
|
@@ -21,7 +21,11 @@ module SidekiqAlive
|
|
21
21
|
# Increment ttl for current registered instance
|
22
22
|
SidekiqAlive.register_current_instance
|
23
23
|
# after callbacks
|
24
|
-
|
24
|
+
begin
|
25
|
+
config.callback.call
|
26
|
+
rescue StandardError
|
27
|
+
nil
|
28
|
+
end
|
25
29
|
end
|
26
30
|
|
27
31
|
def current_hostname
|
data/sidekiq_alive.gemspec
CHANGED
@@ -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
|
3
|
+
require 'sidekiq_alive/version'
|
5
4
|
|
6
5
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
6
|
+
spec.name = 'sidekiq_alive'
|
8
7
|
spec.version = SidekiqAlive::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
8
|
+
spec.authors = ['Artur Pañach']
|
9
|
+
spec.email = ['arturictus@gmail.com']
|
11
10
|
|
12
|
-
spec.summary =
|
13
|
-
spec.description =
|
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 =
|
24
|
-
spec.license =
|
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 =
|
28
|
+
spec.bindir = 'exe'
|
30
29
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
31
|
-
spec.require_paths = [
|
32
|
-
|
33
|
-
spec.add_development_dependency
|
34
|
-
spec.add_development_dependency
|
35
|
-
spec.add_development_dependency
|
36
|
-
spec.add_development_dependency
|
37
|
-
spec.add_development_dependency
|
38
|
-
spec.add_development_dependency
|
39
|
-
spec.add_dependency
|
40
|
-
spec.add_dependency
|
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: 2.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: 2020-
|
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:
|
28
|
+
name: mock_redis
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
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: '
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: rack-test
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
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: '
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
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
|
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:
|
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
|
-
|
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.
|