sidekiq-pauzer 4.2.1 → 5.0.0

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: e7ba4ea9d9b061ee7d506874e2f6dd7e3128d912f194df3f7eea66e134ee5342
4
- data.tar.gz: e7c7a9140a6fb5e450b13ab2f97740908036d4cca4d28a1dbb40cea1210ce7b9
3
+ metadata.gz: 64adf3a12da0acaeaffcb603aae15d37e3895822a01bd3128b82f16d429181f9
4
+ data.tar.gz: c8246993271ccbe1723fe89e8e5955a80660a950f273d4b5b251763a6958c1b5
5
5
  SHA512:
6
- metadata.gz: 1abbf6aa4603205e520b197f93b08f6ad485a285c33dd64bb1b7eb01b8e54f80f0622a816d2fabf43b369c16abdf73beda3b220446ea023f9fe197bd11eeb7f0
7
- data.tar.gz: f70b7cff1ef0955a932c0df368425213524bcf286d6ec4bc9803cf2486c246b835d2c6ae5c3c1f118b7c7adcc09e929a124295218183e45daf266eebca779535
6
+ metadata.gz: be9f0cb3175391264e3fb005a39fd4c17e9fa9a9374a2e667155e113b0c626a17f522b973162a6b4e3c37c84b886738c436666baf1c12691c6134d915d033d94
7
+ data.tar.gz: 628d2cea3110e4bda2a61112bd529bb44513e2fd7cf9de1795a45c0236309666e6fbc7f2bcea3f05af0ac72855c1e5e5e2651371f7efafd92b87b3cbb6990500
data/README.adoc CHANGED
@@ -1,5 +1,12 @@
1
1
  = Sidekiq::Pauzer
2
2
 
3
+ :ci-url: https://github.com/ixti/sidekiq-pauzer/actions/workflows/ci.yml?query=branch%3Amain
4
+ :ci-img: https://github.com/ixti/sidekiq-pauzer/actions/workflows/ci.yml/badge.svg?branch=main
5
+ :codecov-url: https://codecov.io/gh/ixti/sidekiq-pauzer/tree/main
6
+ :codecov-img: https://codecov.io/gh/ixti/sidekiq-pauzer/graph/badge.svg?token=UKXUG2AA89
7
+
8
+ {ci-url}[image:{ci-img}[CI]]
9
+ {codecov-url}[image:{codecov-img}[codecov]]
3
10
 
4
11
  == Installation
5
12
 
@@ -20,13 +27,9 @@ require "sidekiq"
20
27
  require "sidekiq/pauzer"
21
28
 
22
29
  Sidekiq::Pauzer.configure do |config|
23
- # Set redis key prefix.
24
- # Default: nil
25
- config.key_prefix = "my-app:"
26
-
27
30
  # Set paused queues local cache refresh rate in seconds.
28
- # Default: 10
29
- config.refresh_rate = 15
31
+ # Default: 5.0
32
+ config.refresh_rate = 10.0
30
33
  end
31
34
  ----
32
35
 
@@ -100,8 +103,6 @@ dropped.
100
103
 
101
104
  This library aims to support and work with following Sidekiq versions:
102
105
 
103
- * Sidekiq 7.0.x
104
- * Sidekiq 7.1.x
105
106
  * Sidekiq 7.2.x
106
107
 
107
108
 
@@ -3,59 +3,25 @@
3
3
  module Sidekiq
4
4
  module Pauzer
5
5
  class Config
6
- REDIS_KEY = "sidekiq-pauzer"
7
- private_constant :REDIS_KEY
8
-
9
6
  # Default refresh rate
10
- REFRESH_RATE = 10
11
-
12
- # @return [String?]
13
- attr_reader :key_prefix
7
+ REFRESH_RATE = 5.0
14
8
 
15
- # @return [Integer, Float]
9
+ # @return [Float]
16
10
  attr_reader :refresh_rate
17
11
 
18
- # Fully qualified Redis key
19
- #
20
- # @example Without key prefix (default)
21
- # config.redis_key # => "sidekiq-pauzer"
22
- #
23
- # @example With key prefix
24
- # config.key_prefix = "foobar:"
25
- # config.redis_key # => "foobar:sidekiq-pauzer"
26
- #
27
- # @return [String]
28
- attr_reader :redis_key
29
-
30
12
  def initialize
31
- @key_prefix = nil
32
- @redis_key = REDIS_KEY
33
13
  @refresh_rate = REFRESH_RATE
34
14
  end
35
15
 
36
- # Set redis key prefix.
37
- #
38
- # @see redis_key
39
- # @param value [String?] String that should be prepended to redis key
40
- # @return [void]
41
- def key_prefix=(value)
42
- raise ArgumentError, "expected String, or nil; got #{value.class}" unless value.is_a?(String) || value.nil?
43
-
44
- @redis_key = [value, REDIS_KEY].compact.join.freeze
45
- @key_prefix = value&.then(&:-@) # Don't freeze original String value if it was unfrozen
46
- end
47
-
48
16
  # Set paused queues local cache refresh rate in seconds.
49
17
  #
50
- # @param value [Float, Integer] refresh interval in seconds
18
+ # @param value [Float] refresh interval in seconds
51
19
  # @return [void]
52
20
  def refresh_rate=(value)
53
- unless value.is_a?(Integer) || value.is_a?(Float)
54
- raise ArgumentError, "expected Integer, or Float; got #{value.class}"
21
+ unless value.is_a?(Float) && value.positive?
22
+ raise ArgumentError, "expected positive Float; got #{value.inspect}"
55
23
  end
56
24
 
57
- raise ArgumentError, "expected positive value; got #{value.inspect}" unless value.positive?
58
-
59
25
  @refresh_rate = value
60
26
  end
61
27
  end
@@ -10,10 +10,6 @@ module Sidekiq
10
10
  extend Forwardable
11
11
  include Enumerable
12
12
 
13
- # @!attribute [r] redis_key
14
- # @see (Config#redis_key)
15
- def_delegators :@config, :redis_key
16
-
17
13
  # @!attribute [r] refresh_rate
18
14
  # @see (Config#refresh_rate)
19
15
  def_delegators :@config, :refresh_rate
@@ -39,7 +35,7 @@ module Sidekiq
39
35
  # @param name [#to_s]
40
36
  # @return [Queues] self
41
37
  def pause!(name)
42
- redis_call("SADD", redis_key, name.to_s)
38
+ redis_call("SADD", Pauzer::REDIS_KEY, name.to_s)
43
39
  refresh
44
40
  self
45
41
  end
@@ -47,7 +43,7 @@ module Sidekiq
47
43
  # @param name [#to_s]
48
44
  # @return [Queues] self
49
45
  def unpause!(name)
50
- redis_call("SREM", redis_key, name.to_s)
46
+ redis_call("SREM", Pauzer::REDIS_KEY, name.to_s)
51
47
  refresh
52
48
  self
53
49
  end
@@ -86,7 +82,7 @@ module Sidekiq
86
82
 
87
83
  # @return [nil]
88
84
  def refresh
89
- names = redis_call("SMEMBERS", redis_key).to_a
85
+ names = redis_call("SMEMBERS", Pauzer::REDIS_KEY).to_a
90
86
 
91
87
  @names_mutex.synchronize do
92
88
  @names = names.each(&:freeze).freeze
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Sidekiq
4
4
  module Pauzer
5
- VERSION = "4.2.1"
5
+ VERSION = "5.0.0"
6
6
  end
7
7
  end
@@ -27,7 +27,10 @@ raise "sidekiq-pauzer is incompatible with Sidekiq Enterprise" if Sidekiq.ent?
27
27
 
28
28
  module Sidekiq
29
29
  module Pauzer
30
+ REDIS_KEY = "sidekiq-pauzer"
31
+
30
32
  MUTEX = Mutex.new
33
+ private_constant :MUTEX
31
34
 
32
35
  @config = Config.new.freeze
33
36
  @queues = Queues.new(@config)
@@ -35,11 +38,6 @@ module Sidekiq
35
38
  class << self
36
39
  extend Forwardable
37
40
 
38
- # @!attribute [r] redis_key
39
- # @see Config#redis_key
40
- # @return [String]
41
- def_delegators :@config, :redis_key
42
-
43
41
  # @example
44
42
  # Sidekiq::Pauzer.pause!("minor")
45
43
  # Sidekiq::Pauzer.paused?("minor") # => true
data/web/views/queues.erb CHANGED
@@ -20,8 +20,12 @@
20
20
  <span class="label label-danger"><%= t('Paused') %></span>
21
21
  <% end %>
22
22
  </td>
23
- <td><%= number_with_delimiter(queue.size) %> </td>
24
- <td><% queue_latency = queue.latency %><%= number_with_delimiter(queue_latency.round(2)) %><%= (queue_latency < 60) ? '' : " (#{relative_time(Time.at(Time.now.to_f - queue_latency))})" %> </td>
23
+ <td class="num"><%= number_with_delimiter(queue.size) %> </td>
24
+ <td class="num">
25
+ <% queue_latency = queue.latency %>
26
+ <%= (queue_latency < 60) ? '' : " (#{relative_time(Time.at(Time.now.to_f - queue_latency))})" %>
27
+ <%= number_with_delimiter(queue_latency, precision: 2) %>
28
+ </td>
25
29
  <td class="delete-confirm">
26
30
  <form action="<%=root_path %>queues/<%= CGI.escape(queue.name) %>" method="post">
27
31
  <%= csrf_tag %>
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.1
4
+ version: 5.0.0
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-26 00:00:00.000000000 Z
11
+ date: 2023-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '7.0'
33
+ version: '7.2'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '7.0'
40
+ version: '7.2'
41
41
  description:
42
42
  email:
43
43
  - alexey@zapparov.com
@@ -63,9 +63,9 @@ licenses:
63
63
  - MIT
64
64
  metadata:
65
65
  homepage_uri: https://github.com/ixti/sidekiq-pauzer
66
- source_code_uri: https://github.com/ixti/sidekiq-pauzer/tree/v4.2.1
66
+ source_code_uri: https://github.com/ixti/sidekiq-pauzer/tree/v5.0.0
67
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
68
+ changelog_uri: https://github.com/ixti/sidekiq-pauzer/blob/v5.0.0/CHANGES.md
69
69
  rubygems_mfa_required: 'true'
70
70
  post_install_message:
71
71
  rdoc_options: []