sidekiq-pauzer 4.2.0 → 4.2.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: 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: []