sidekiq_alive 2.2.3 → 2.3.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: 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: []