sidekiq_alive 2.2.3 → 2.3.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
  SHA256:
3
- metadata.gz: cd90934747b7a9c1ca502f4ad44cdbd25e62477c01b7a3294f4b8c8e2779f27f
4
- data.tar.gz: 0e05ab99ca8f24ed17209d6d31b37c5feb5202b899a540db550d892f810d65c0
3
+ metadata.gz: 63e0e0239c3b38ded118c8bd79cfda8e45417b7be5aa4c3b19243bfc8490ddc3
4
+ data.tar.gz: e263a81dd897da3db9f5a84a79cab8353027e689da700b8871c1226ee68d8da5
5
5
  SHA512:
6
- metadata.gz: 3dd8df33e8a8d7055728f4f5a0a5e7a4622c5ea9a56480c0a0859e1c2b8ced78fa9a1dbd708ce98acbf8fc8ecbe396f3c8f64df08009d41c4d41243fe81763f5
7
- data.tar.gz: e440b167ba6ac102eed86ee2f04273f093ed039e1110b055e0f6f6cefc75068dd0c96aad57fa657384f147a3e78f82b09dbd38357d9f9940fe228a2d0be914a6
6
+ metadata.gz: 88782bc7948ceeadc8ee7b2cb8c06cc9c5021da5891e4f333d620c5769a87c120d140cb1374c8886f3881b2c9019ff1855eb4710a838b085adbcc9f8681e3673
7
+ data.tar.gz: ce6c00b601cc2304568857c7d252a6a7b19693d7e71e6ad7c39f1381b99f8e010cbba91a1195bf073b1381ce0fc3d13cb6c1a736a21e8295fb2291fd485060fb
data/README.md CHANGED
@@ -268,6 +268,14 @@ SidekiqAlive.setup do |config|
268
268
  # default: 'webrick'
269
269
  #
270
270
  # config.server = 'puma'
271
+
272
+ # ==> Concurrency
273
+ # The maximum number of Redis connections requested for the SidekiqAlive pool.
274
+ # Can also be set with the environment variable SIDEKIQ_ALIVE_CONCURRENCY.
275
+ # NOTE: only effects Sidekiq 7 or greater.
276
+ # default: 2
277
+ #
278
+ # config.concurrency = 3
271
279
  end
272
280
  ```
273
281
 
@@ -15,7 +15,8 @@ module SidekiqAlive
15
15
  :server,
16
16
  :custom_liveness_probe,
17
17
  :logger,
18
- :shutdown_callback
18
+ :shutdown_callback,
19
+ :concurrency
19
20
 
20
21
  def initialize
21
22
  set_defaults
@@ -33,6 +34,7 @@ module SidekiqAlive
33
34
  @server = ENV.fetch("SIDEKIQ_ALIVE_SERVER", "webrick")
34
35
  @custom_liveness_probe = proc { true }
35
36
  @shutdown_callback = proc {}
37
+ @concurrency = Integer(ENV.fetch("SIDEKIQ_ALIVE_CONCURRENCY", 2), exception: false) || 2
36
38
  end
37
39
 
38
40
  def registration_ttl
@@ -28,7 +28,7 @@ module SidekiqAlive
28
28
  end
29
29
 
30
30
  def ttl(...)
31
- Sidekiq.redis { |redis| redis.ttl(...) }
31
+ redis { |r| r.ttl(...) }
32
32
  end
33
33
  end
34
34
  end
@@ -7,32 +7,45 @@ module SidekiqAlive
7
7
  # Wrapper for `redis-client` gem used by `sidekiq` > 7
8
8
  # https://github.com/redis-rb/redis-client
9
9
  class RedisClientGem < Base
10
+ def initialize
11
+ super
12
+
13
+ @capsule = Sidekiq.default_configuration.capsules[CAPSULE_NAME]
14
+ end
15
+
10
16
  def set(key, time:, ex:)
11
- Sidekiq.redis { |redis| redis.call("SET", key, time, ex: ex) }
17
+ redis { |r| r.call("SET", key, time, ex: ex) }
12
18
  end
13
19
 
14
20
  def get(key)
15
- Sidekiq.redis { |redis| redis.call("GET", key) }
21
+ redis { |r| r.call("GET", key) }
16
22
  end
17
23
 
18
24
  def zadd(set_key, ex, key)
19
- Sidekiq.redis { |redis| redis.call("ZADD", set_key, ex, key) }
25
+ redis { |r| r.call("ZADD", set_key, ex, key) }
20
26
  end
21
27
 
22
28
  def zrange(set_key, start, stop)
23
- Sidekiq.redis { |redis| redis.call("ZRANGE", set_key, start, stop) }
29
+ redis { |r| r.call("ZRANGE", set_key, start, stop) }
24
30
  end
25
31
 
26
32
  def zrangebyscore(set_key, min, max)
27
- Sidekiq.redis { |redis| redis.call("ZRANGEBYSCORE", set_key, min, max) }
33
+ redis { |r| r.call("ZRANGEBYSCORE", set_key, min, max) }
28
34
  end
29
35
 
30
36
  def zrem(set_key, key)
31
- Sidekiq.redis { |redis| redis.call("ZREM", set_key, key) }
37
+ redis { |r| r.call("ZREM", set_key, key) }
32
38
  end
33
39
 
34
40
  def delete(key)
35
- Sidekiq.redis { |redis| redis.call("DEL", key) }
41
+ redis { |r| r.call("DEL", key) }
42
+ end
43
+
44
+ private
45
+
46
+ def redis(&block)
47
+ # Default to Sidekiq.redis if capsule is not configured yet but redis adapter is accessed
48
+ (@capsule || Sidekiq).redis(&block)
36
49
  end
37
50
  end
38
51
  end
@@ -8,37 +8,37 @@ module SidekiqAlive
8
8
  # https://github.com/redis/redis-rb
9
9
  class RedisGem < Base
10
10
  def set(key, time:, ex:)
11
- redis.set(key, time, ex: ex)
11
+ redis { |r| r.set(key, time, ex: ex) }
12
12
  end
13
13
 
14
14
  def get(key)
15
- redis.get(key)
15
+ redis { |r| r.get(key) }
16
16
  end
17
17
 
18
18
  def zadd(set_key, ex, key)
19
- redis.zadd(set_key, ex, key)
19
+ redis { |r| r.zadd(set_key, ex, key) }
20
20
  end
21
21
 
22
22
  def zrange(set_key, start, stop)
23
- redis.zrange(set_key, start, stop)
23
+ redis { |r| r.zrange(set_key, start, stop) }
24
24
  end
25
25
 
26
26
  def zrangebyscore(set_key, min, max)
27
- redis.zrangebyscore(set_key, min, max)
27
+ redis { |r| r.zrangebyscore(set_key, min, max) }
28
28
  end
29
29
 
30
30
  def zrem(set_key, key)
31
- redis.zrem(set_key, key)
31
+ redis { |r| r.zrem(set_key, key) }
32
32
  end
33
33
 
34
34
  def delete(key)
35
- redis.del(key)
35
+ redis { |r| r.del(key) }
36
36
  end
37
37
 
38
38
  private
39
39
 
40
- def redis
41
- Sidekiq.redis { |redis| redis }
40
+ def redis(&block)
41
+ Sidekiq.redis(&block)
42
42
  end
43
43
  end
44
44
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SidekiqAlive
4
- VERSION = "2.2.3"
4
+ VERSION = "2.3.1"
5
5
  end
data/lib/sidekiq_alive.rb CHANGED
@@ -10,20 +10,21 @@ require "sidekiq_alive/redis"
10
10
 
11
11
  module SidekiqAlive
12
12
  HOSTNAME_REGISTRY = "sidekiq-alive-hostnames"
13
+ CAPSULE_NAME = "sidekiq-alive"
14
+
13
15
  class << self
14
16
  def start
15
17
  Sidekiq.configure_server do |sq_config|
16
18
  sq_config.on(:startup) do
17
19
  SidekiqAlive::Worker.sidekiq_options(queue: current_queue)
18
- if Helpers.sidekiq_7
19
- sq_config.queues
20
- else
21
- sq_config.respond_to?(:[]) ? sq_config[:queues] : sq_config.options[:queues]
22
- end.unshift(current_queue)
23
20
 
24
- # If no weight is set, webui might not show this queue for given instance/process.
25
21
  if Helpers.sidekiq_7
26
- sq_config.default_capsule.weights[current_queue] = 1
22
+ sq_config.capsule(CAPSULE_NAME) do |cap|
23
+ cap.concurrency = config.concurrency
24
+ cap.queues = [current_queue]
25
+ end
26
+ else
27
+ (sq_config.respond_to?(:[]) ? sq_config[:queues] : sq_config.options[:queues]).unshift(current_queue)
27
28
  end
28
29
 
29
30
  logger.info(startup_info)
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.2.3
4
+ version: 2.3.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-07-21 00:00:00.000000000 Z
12
+ date: 2023-10-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -87,14 +87,14 @@ dependencies:
87
87
  requirements:
88
88
  - - "~>"
89
89
  - !ruby/object:Gem::Version
90
- version: '3.0'
90
+ version: '4.0'
91
91
  type: :development
92
92
  prerelease: false
93
93
  version_requirements: !ruby/object:Gem::Requirement
94
94
  requirements:
95
95
  - - "~>"
96
96
  - !ruby/object:Gem::Version
97
- version: '3.0'
97
+ version: '4.0'
98
98
  - !ruby/object:Gem::Dependency
99
99
  name: rubocop-shopify
100
100
  requirement: !ruby/object:Gem::Requirement
@@ -213,7 +213,7 @@ metadata:
213
213
  homepage_uri: https://github.com/arturictus/sidekiq_alive
214
214
  source_code_uri: https://github.com/arturictus/sidekiq_alive
215
215
  changelog_uri: https://github.com/arturictus/sidekiq_alive/releases
216
- documentation_uri: https://github.com/arturictus/sidekiq_alive/blob/v2.2.3/README.md
216
+ documentation_uri: https://github.com/arturictus/sidekiq_alive/blob/v2.3.1/README.md
217
217
  bug_tracker_uri: https://github.com/arturictus/sidekiq_alive/issues
218
218
  post_install_message:
219
219
  rdoc_options: []