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 +4 -4
- data/lib/sidekiq/pauzer/queues.rb +29 -19
- data/lib/sidekiq/pauzer/version.rb +1 -1
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e7ba4ea9d9b061ee7d506874e2f6dd7e3128d912f194df3f7eea66e134ee5342
|
4
|
+
data.tar.gz: e7c7a9140a6fb5e450b13ab2f97740908036d4cca4d28a1dbb40cea1210ce7b9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
@
|
24
|
-
@
|
25
|
-
@
|
26
|
-
@
|
27
|
-
@
|
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
|
-
@
|
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
|
-
|
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
|
-
|
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
|
-
@
|
59
|
-
@refresher
|
60
|
-
|
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
|
-
@
|
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
|
-
@
|
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 =
|
89
|
+
names = redis_call("SMEMBERS", redis_key).to_a
|
86
90
|
|
87
|
-
@
|
91
|
+
@names_mutex.synchronize do
|
92
|
+
@names = names.each(&:freeze).freeze
|
93
|
+
end
|
88
94
|
|
89
|
-
|
95
|
+
nil
|
96
|
+
end
|
97
|
+
|
98
|
+
def redis_call(...)
|
99
|
+
Sidekiq.redis { |conn| conn.call(...) }
|
90
100
|
end
|
91
101
|
end
|
92
102
|
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.
|
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-
|
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://
|
61
|
+
homepage: https://github.com/ixti/sidekiq-pauzer
|
62
62
|
licenses:
|
63
63
|
- MIT
|
64
64
|
metadata:
|
65
|
-
homepage_uri: https://
|
66
|
-
source_code_uri: https://
|
67
|
-
bug_tracker_uri: https://
|
68
|
-
changelog_uri: https://
|
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: []
|