sidekiq_alive 2.1.9 → 2.2.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
  SHA256:
3
- metadata.gz: 8a1531edeeb59ff8e59f1ea95bc3a9456b3893658254b1aa1dd9bd046b774914
4
- data.tar.gz: 5c8fdbcd1c8ca43fb3e3b461d94049fdf27e8663ee9aafb8bfcac8761f96a6c7
3
+ metadata.gz: d2e582c78da2c8fa6ab33a00ff95b84cb118146e4e6bd91da9571812a29b362a
4
+ data.tar.gz: 1e05d528f28a1c73ce5b53bab77b32d5526a759f0e73a490c77606bcd9ea80ee
5
5
  SHA512:
6
- metadata.gz: e5cb97906bd942c5c65b95537c75d1f39f77b7154845c2a6bd748e02b005d8103c76510eedb8e2676183c201cd21067e1f73fa7986681c858e6d8de477eac987
7
- data.tar.gz: 2a581a73a2b9825681f3904d7d6d69af8faf10db1a117c037836f07a21c8b43931db6cfdb40bfaff5d6b27806b64b8d73e4c26c6951c0a1710245f4da3a7f3bf
6
+ metadata.gz: d6cb33070d6b0ea67e4aee822f72bab2f00ef4fd1b930f52ab5f2a6450f146a64d5e4dff3e8c9aed662e5f1a82c32f71a08b70d40f817b297350b19779e016a5
7
+ data.tar.gz: 679728e07162ab19a31b9be42b75b430d466afaf76bb15cdfd6265092486ab17f7e1d5259d6467f9dc9eccb75c1d355b5bbb46712ccfec1b1ecad97c7a0bdf8f
data/README.md CHANGED
@@ -1,8 +1,10 @@
1
1
  # SidekiqAlive
2
2
 
3
- ![build](https://github.com/arturictus/sidekiq_alive/actions/workflows/ruby.yml/badge.svg)
4
- [![Maintainability](https://api.codeclimate.com/v1/badges/35c39124564ffeb0ce4e/maintainability)](https://codeclimate.com/github/arturictus/sidekiq_alive/maintainability)
5
- [![Test Coverage](https://api.codeclimate.com/v1/badges/35c39124564ffeb0ce4e/test_coverage)](https://codeclimate.com/github/arturictus/sidekiq_alive/test_coverage)
3
+ [![Gem Version](https://badge.fury.io/rb/sidekiq_alive.svg)](https://rubygems.org/gems/sidekiq_alive)
4
+ [![Total Downloads](https://img.shields.io/gem/dt/sidekiq_alive?color=blue)](https://rubygems.org/gems/https://rubygems.org/gems/sidekiq_alive)
5
+ ![Workflow status](https://github.com/allure-framework/allure-ruby/workflows/Test/badge.svg)
6
+
7
+ ---
6
8
 
7
9
  SidekiqAlive offers a solution to add liveness probe for a Sidekiq instance deployed in Kubernetes.
8
10
  This library can be used to check sidekiq health outside kubernetes.
@@ -249,7 +251,7 @@ SidekiqAlive.setup do |config|
249
251
  # default: proc {}
250
252
  #
251
253
  # config.shutdown_callback = proc do
252
- # Sidekiq::Queue.all.find { |q| q.name == "#{queue_prefix}-#{SidekiqAlive.hostname}" }&.clear
254
+ # Sidekiq::Queue.all.find { |q| q.name == "#{config.queue_prefix}-#{SidekiqAlive.hostname}" }&.clear
253
255
  # end
254
256
 
255
257
  # ==> Queue Prefix
@@ -36,7 +36,7 @@ module SidekiqAlive
36
36
  end
37
37
 
38
38
  def registration_ttl
39
- @registration_ttl || time_to_live + 60
39
+ @registration_ttl || time_to_live * 3
40
40
  end
41
41
  end
42
42
  end
@@ -3,26 +3,22 @@
3
3
  module SidekiqAlive
4
4
  module Redis
5
5
  class Base
6
- def set(key, time:, ex:)
7
- raise("Implement me")
6
+ def set(...)
7
+ raise(NotImplementedError)
8
8
  end
9
9
 
10
10
  def match(key)
11
- raise("Implement me")
11
+ raise(NotImplementedError)
12
12
  end
13
13
 
14
14
  def delete(key)
15
- raise("Implement me")
15
+ raise(NotImplementedError)
16
16
  end
17
17
 
18
18
  def ttl(...)
19
19
  redis.ttl(...)
20
20
  end
21
21
 
22
- def flushall
23
- redis.flushall
24
- end
25
-
26
22
  private
27
23
 
28
24
  def redis
@@ -4,13 +4,17 @@ require_relative "base"
4
4
 
5
5
  module SidekiqAlive
6
6
  module Redis
7
- # Wrapper for redis client adapter used by sidekiq > 7
8
- #
9
- class ClientAdapter < Base
7
+ # Wrapper for `redis-client` gem used by `sidekiq` > 7
8
+ # https://github.com/redis-rb/redis-client
9
+ class RedisClientGem < Base
10
10
  def set(key, time:, ex:)
11
11
  redis.call("SET", key, time, ex: ex)
12
12
  end
13
13
 
14
+ def get(key)
15
+ redis.call("GET", key)
16
+ end
17
+
14
18
  def match(key)
15
19
  redis.scan("MATCH", key).map { |key| key }
16
20
  end
@@ -4,13 +4,17 @@ require_relative "base"
4
4
 
5
5
  module SidekiqAlive
6
6
  module Redis
7
- # Wrapper for redis client used by sidekiq < 7
8
- #
9
- class Client < Base
7
+ # Wrapper for `redis` gem used by sidekiq < 7
8
+ # https://github.com/redis/redis-rb
9
+ class RedisGem < Base
10
10
  def set(key, time:, ex:)
11
11
  redis.set(key, time, ex: ex)
12
12
  end
13
13
 
14
+ def get(key)
15
+ redis.get(key)
16
+ end
17
+
14
18
  def match(key)
15
19
  keys = []
16
20
  cursor = 0
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SidekiqAlive
4
+ module Redis
5
+ class << self
6
+ def adapter
7
+ Helpers.sidekiq_7 ? Redis::RedisClientGem.new : Redis::RedisGem.new
8
+ end
9
+ end
10
+ end
11
+ end
12
+
13
+ require_relative "redis/base"
14
+ require_relative "redis/redis_client_gem"
15
+ require_relative "redis/redis_gem"
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SidekiqAlive
4
- VERSION = "2.1.9"
4
+ VERSION = "2.2.1"
5
5
  end
@@ -5,6 +5,7 @@ module SidekiqAlive
5
5
  include Sidekiq::Worker
6
6
  sidekiq_options retry: false
7
7
 
8
+ # Passing the hostname argument it's only for debugging enqueued jobs
8
9
  def perform(_hostname = SidekiqAlive.hostname)
9
10
  # Checks if custom liveness probe passes should fail or return false
10
11
  return unless config.custom_liveness_probe.call
@@ -15,12 +16,6 @@ module SidekiqAlive
15
16
  self.class.perform_in(config.time_to_live / 2, current_hostname)
16
17
  end
17
18
 
18
- def hostname_registered?(hostname)
19
- SidekiqAlive.registered_instances.any? do |ri|
20
- /#{hostname}/ =~ ri
21
- end
22
- end
23
-
24
19
  def write_living_probe
25
20
  # Write liveness probe
26
21
  SidekiqAlive.store_alive_key
data/lib/sidekiq_alive.rb CHANGED
@@ -6,8 +6,7 @@ require "singleton"
6
6
  require "sidekiq_alive/version"
7
7
  require "sidekiq_alive/config"
8
8
  require "sidekiq_alive/helpers"
9
- require "sidekiq_alive/redis/client"
10
- require "sidekiq_alive/redis/client_adapter"
9
+ require "sidekiq_alive/redis"
11
10
 
12
11
  module SidekiqAlive
13
12
  class << self
@@ -21,10 +20,16 @@ module SidekiqAlive
21
20
  sq_config.respond_to?(:[]) ? sq_config[:queues] : sq_config.options[:queues]
22
21
  end.unshift(current_queue)
23
22
 
23
+ # If no weight is set, webui might not show this queue for given instance/process.
24
+ if Helpers.sidekiq_7
25
+ sq_config.default_capsule.weights[current_queue] = 1
26
+ end
27
+
24
28
  logger.info(startup_info)
25
29
 
26
30
  register_current_instance
27
31
  store_alive_key
32
+ # Passing the hostname argument it's only for debugging enqueued jobs
28
33
  SidekiqAlive::Worker.perform_async(hostname)
29
34
  @server_pid = fork { SidekiqAlive::Server.run! }
30
35
 
@@ -83,12 +88,16 @@ module SidekiqAlive
83
88
  "#{config.registered_instance_key}::#{hostname}"
84
89
  end
85
90
 
91
+ def current_instance_registered?
92
+ redis.get(current_instance_register_key)
93
+ end
94
+
86
95
  def store_alive_key
87
96
  redis.set(current_lifeness_key, time: Time.now.to_i, ex: config.time_to_live.to_i)
88
97
  end
89
98
 
90
99
  def redis
91
- @redis ||= Helpers.sidekiq_7 ? Redis::ClientAdapter.new : Redis::Client.new
100
+ @redis ||= Redis.adapter
92
101
  end
93
102
 
94
103
  def alive?
@@ -135,7 +144,7 @@ module SidekiqAlive
135
144
  end
136
145
 
137
146
  def successful_startup_text
138
- "Successfully started sidekiq-alive, registered instances: #{registered_instances.join("\n\s\s- ")}"
147
+ "Successfully started sidekiq-alive, registered with key: #{current_instance_register_key}"
139
148
  end
140
149
 
141
150
  def register_instance(instance_name)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq_alive
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.9
4
+ version: 2.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrejs Cunskis
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-01-11 00:00:00.000000000 Z
12
+ date: 2023-05-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -45,14 +45,14 @@ dependencies:
45
45
  requirements:
46
46
  - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: 2.0.2
48
+ version: 2.1.0
49
49
  type: :development
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: 2.0.2
55
+ version: 2.1.0
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: rake
58
58
  requirement: !ruby/object:Gem::Requirement
@@ -115,14 +115,14 @@ dependencies:
115
115
  requirements:
116
116
  - - "~>"
117
117
  - !ruby/object:Gem::Version
118
- version: 0.48.0
118
+ version: 0.49.0
119
119
  type: :development
120
120
  prerelease: false
121
121
  version_requirements: !ruby/object:Gem::Requirement
122
122
  requirements:
123
123
  - - "~>"
124
124
  - !ruby/object:Gem::Version
125
- version: 0.48.0
125
+ version: 0.49.0
126
126
  - !ruby/object:Gem::Dependency
127
127
  name: rack
128
128
  requirement: !ruby/object:Gem::Requirement
@@ -199,9 +199,10 @@ files:
199
199
  - lib/sidekiq_alive.rb
200
200
  - lib/sidekiq_alive/config.rb
201
201
  - lib/sidekiq_alive/helpers.rb
202
+ - lib/sidekiq_alive/redis.rb
202
203
  - lib/sidekiq_alive/redis/base.rb
203
- - lib/sidekiq_alive/redis/client.rb
204
- - lib/sidekiq_alive/redis/client_adapter.rb
204
+ - lib/sidekiq_alive/redis/redis_client_gem.rb
205
+ - lib/sidekiq_alive/redis/redis_gem.rb
205
206
  - lib/sidekiq_alive/server.rb
206
207
  - lib/sidekiq_alive/version.rb
207
208
  - lib/sidekiq_alive/worker.rb
@@ -212,7 +213,7 @@ metadata:
212
213
  homepage_uri: https://github.com/arturictus/sidekiq_alive
213
214
  source_code_uri: https://github.com/arturictus/sidekiq_alive
214
215
  changelog_uri: https://github.com/arturictus/sidekiq_alive/releases
215
- documentation_uri: https://github.com/arturictus/sidekiq_alive/blob/v2.1.9/README.md
216
+ documentation_uri: https://github.com/arturictus/sidekiq_alive/blob/v2.2.1/README.md
216
217
  bug_tracker_uri: https://github.com/arturictus/sidekiq_alive/issues
217
218
  post_install_message:
218
219
  rdoc_options: []