sidekiq-pauzer 4.2.0 → 4.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: e0cfd697bb2a9f06be2bd59ef44bbb4ffc6f5bcf073d67117e5f4df50f04774c
4
- data.tar.gz: 1b2712b8d2bec0253e32386d966798b76e7d33f2590833761c3c3d231631bbb6
3
+ metadata.gz: e7ba4ea9d9b061ee7d506874e2f6dd7e3128d912f194df3f7eea66e134ee5342
4
+ data.tar.gz: e7c7a9140a6fb5e450b13ab2f97740908036d4cca4d28a1dbb40cea1210ce7b9
5
5
  SHA512:
6
- metadata.gz: 38beb5711a6a1eef4aa51cc538642e4de4dd7c5a51a12c8bd2084430034da09b4b0c6fea78a9da14192372319735fd53ce76ed92a47b9b4a4957ff8112df0fc7
7
- data.tar.gz: 052b517478b5cae0f700cf8f94f044c19398519f5d65c285290e08f6117d70a1fb80ec8a984b0d78bfb1a4c9670d139d9d78e431fc54a70e8a74f08d4238c22d
6
+ metadata.gz: 1abbf6aa4603205e520b197f93b08f6ad485a285c33dd64bb1b7eb01b8e54f80f0622a816d2fabf43b369c16abdf73beda3b220446ea023f9fe197bd11eeb7f0
7
+ data.tar.gz: f70b7cff1ef0955a932c0df368425213524bcf286d6ec4bc9803cf2486c246b835d2c6ae5c3c1f118b7c7adcc09e929a124295218183e45daf266eebca779535
@@ -20,32 +20,36 @@ module Sidekiq
20
20
 
21
21
  # @param config [Config]
22
22
  def initialize(config)
23
- @names = [].freeze
24
- @config = config
25
- @init_mutex = Mutex.new
26
- @poll_mutex = Mutex.new
27
- @refresher = nil
23
+ @config = config
24
+ @names = [].freeze
25
+ @names_mutex = Mutex.new
26
+ @refresher = nil
27
+ @refresher_mutex = Mutex.new
28
28
  end
29
29
 
30
30
  def each(&block)
31
31
  return to_enum __method__ unless block
32
32
 
33
33
  start_refresher unless refresher_running?
34
- @poll_mutex.synchronize { @names.dup }.each(&block)
34
+ @names_mutex.synchronize { @names.dup }.each(&block)
35
35
 
36
36
  self
37
37
  end
38
38
 
39
39
  # @param name [#to_s]
40
+ # @return [Queues] self
40
41
  def pause!(name)
41
- Sidekiq.redis { |conn| conn.call("SADD", redis_key, name.to_s) }
42
+ redis_call("SADD", redis_key, name.to_s)
42
43
  refresh
44
+ self
43
45
  end
44
46
 
45
47
  # @param name [#to_s]
48
+ # @return [Queues] self
46
49
  def unpause!(name)
47
- Sidekiq.redis { |conn| conn.call("SREM", redis_key, name.to_s) }
50
+ redis_call("SREM", redis_key, name.to_s)
48
51
  refresh
52
+ self
49
53
  end
50
54
 
51
55
  # @param name [#to_s]
@@ -55,19 +59,16 @@ module Sidekiq
55
59
  end
56
60
 
57
61
  def start_refresher
58
- @init_mutex.synchronize do
59
- @refresher ||= Concurrent::TimerTask.new(execution_interval: refresh_rate, run_now: true) do
60
- refresh
61
- end
62
-
63
- @refresher.execute
62
+ @refresher_mutex.synchronize do
63
+ @refresher&.shutdown
64
+ @refresher = Concurrent::TimerTask.execute(execution_interval: refresh_rate, run_now: true) { refresh }
64
65
  end
65
66
 
66
67
  self
67
68
  end
68
69
 
69
70
  def stop_refresher
70
- @init_mutex.synchronize do
71
+ @refresher_mutex.synchronize do
71
72
  @refresher&.shutdown
72
73
  @refresher = nil
73
74
  end
@@ -76,17 +77,26 @@ module Sidekiq
76
77
  end
77
78
 
78
79
  def refresher_running?
79
- @init_mutex.synchronize { @refresher&.running? || false }
80
+ @refresher_mutex.synchronize do
81
+ @refresher&.running? || false
82
+ end
80
83
  end
81
84
 
82
85
  private
83
86
 
87
+ # @return [nil]
84
88
  def refresh
85
- names = Sidekiq.redis { |conn| conn.call("SMEMBERS", redis_key).to_a }
89
+ names = redis_call("SMEMBERS", redis_key).to_a
86
90
 
87
- @poll_mutex.synchronize { @names = names.each(&:freeze).freeze }
91
+ @names_mutex.synchronize do
92
+ @names = names.each(&:freeze).freeze
93
+ end
88
94
 
89
- self
95
+ nil
96
+ end
97
+
98
+ def redis_call(...)
99
+ Sidekiq.redis { |conn| conn.call(...) }
90
100
  end
91
101
  end
92
102
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Sidekiq
4
4
  module Pauzer
5
- VERSION = "4.2.0"
5
+ VERSION = "4.2.1"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq-pauzer
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.0
4
+ version: 4.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexey Zapparov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-11-23 00:00:00.000000000 Z
11
+ date: 2023-11-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -58,14 +58,14 @@ files:
58
58
  - lib/sidekiq/pauzer/version.rb
59
59
  - lib/sidekiq/pauzer/web.rb
60
60
  - web/views/queues.erb
61
- homepage: https://gitlab.com/ixti/sidekiq-pauzer
61
+ homepage: https://github.com/ixti/sidekiq-pauzer
62
62
  licenses:
63
63
  - MIT
64
64
  metadata:
65
- homepage_uri: https://gitlab.com/ixti/sidekiq-pauzer
66
- source_code_uri: https://gitlab.com/ixti/sidekiq-pauzer/tree/v4.2.0
67
- bug_tracker_uri: https://gitlab.com/ixti/sidekiq-pauzer/issues
68
- changelog_uri: https://gitlab.com/ixti/sidekiq-pauzer/blob/v4.2.0/CHANGES.md
65
+ homepage_uri: https://github.com/ixti/sidekiq-pauzer
66
+ source_code_uri: https://github.com/ixti/sidekiq-pauzer/tree/v4.2.1
67
+ bug_tracker_uri: https://github.com/ixti/sidekiq-pauzer/issues
68
+ changelog_uri: https://github.com/ixti/sidekiq-pauzer/blob/v4.2.1/CHANGES.md
69
69
  rubygems_mfa_required: 'true'
70
70
  post_install_message:
71
71
  rdoc_options: []