sidekiq-throttled 0.16.2 → 0.17.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: 8f13258e6221758892919e37d8d233b33b52f46d3e6ae4f61700f009f1bb0553
4
- data.tar.gz: a50132e8af4521c5c2d4f8edc3bcdc8d823160bd7c7ad2980bce6c4b10a29087
3
+ metadata.gz: 1a4884da942e03171d7265651258f4da2ca601aa36219192b325a2ce0ff113fd
4
+ data.tar.gz: 7b1d20e64db0cf3720f4b404a95744b77de186da718feb7f6abd7cd23623e08d
5
5
  SHA512:
6
- metadata.gz: 5cb7186478fa6eced7c69086aee8b7ba626b504db5d2b594bd416a3ce24254d9670047216c92290cc023c578c8cb83ab4cce952f6dc568055ca00a7707b8ef27
7
- data.tar.gz: 44d7b64362ef7fd1fbf97e588c3048f249610f6613d3517ad3aa8a78f31447c93dd52ee2fa9fde84f84dc602620c1fa78081e29d96e78c43f327527f683ac953
6
+ metadata.gz: 93699777efb1fd7794a7e566d6b129b0898f8efb327627b2a17b5e3e595a100fedc8b5a064ab8331b61c553cdd4a3aa2f3ac57c76d9d677c16ef006df18c592d
7
+ data.tar.gz: 9aaa27dbd6c116fbeac961cb8f8d1413bc1b9ff84241cfa81ce4b63b479a0b2386d6de8c94a6176a461d4f50867ce80957fd4b4569b5bd9db377d41fafbb247c
@@ -14,7 +14,7 @@ jobs:
14
14
  fail-fast: false
15
15
  matrix:
16
16
  ruby: [ "2.7", "3.0", "3.1" ]
17
- sidekiq: [ "6.0", "6.1", "6.2", "6.3", "6.4", "6.5" ]
17
+ sidekiq: [ "6.4", "6.5" ]
18
18
 
19
19
  runs-on: ubuntu-latest
20
20
 
data/.travis.yml CHANGED
@@ -33,7 +33,5 @@ matrix:
33
33
  gemfile: Gemfile
34
34
 
35
35
  gemfile:
36
- - gemfiles/sidekiq_5.0.gemfile
37
- - gemfiles/sidekiq_5.1.gemfile
38
- - gemfiles/sidekiq_5.2.gemfile
39
- - gemfiles/sidekiq_6.0.gemfile
36
+ - gemfiles/sidekiq_6.4.gemfile
37
+ - gemfiles/sidekiq_6.5.gemfile
data/Appraisals CHANGED
@@ -1,21 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- appraise "sidekiq-6.0" do
4
- gem "sidekiq", "~> 6.0.0"
5
- end
6
-
7
- appraise "sidekiq-6.1" do
8
- gem "sidekiq", "~> 6.1.0"
9
- end
10
-
11
- appraise "sidekiq-6.2" do
12
- gem "sidekiq", "~> 6.2.0"
13
- end
14
-
15
- appraise "sidekiq-6.3" do
16
- gem "sidekiq", "~> 6.3.0"
17
- end
18
-
19
3
  appraise "sidekiq-6.4" do
20
4
  gem "sidekiq", "~> 6.4.0"
21
5
  end
data/README.md CHANGED
@@ -266,10 +266,6 @@ dropped.
266
266
 
267
267
  This library aims to support work with following [Sidekiq][sidekiq] versions:
268
268
 
269
- * Sidekiq 6.0.x
270
- * Sidekiq 6.1.x
271
- * Sidekiq 6.2.x
272
- * Sidekiq 6.3.x
273
269
  * Sidekiq 6.4.x
274
270
  * Sidekiq 6.5.x
275
271
 
@@ -12,33 +12,6 @@ module Sidekiq
12
12
  #
13
13
  # @private
14
14
  class Fetch
15
- module BulkRequeue
16
- # Requeues all given units as a single operation.
17
- #
18
- # @see http://www.rubydoc.info/github/redis/redis-rb/master/Redis#pipelined-instance_method
19
- # @param [Array<Fetch::UnitOfWork>] units
20
- # @return [void]
21
- def bulk_requeue(units, _options)
22
- return if units.empty?
23
-
24
- Sidekiq.logger.debug { "Re-queueing terminated jobs" }
25
- Sidekiq.redis do |conn|
26
- conn.pipelined do |pipeline|
27
- units.each { |unit| unit.requeue(pipeline) }
28
- end
29
- end
30
- Sidekiq.logger.info("Pushed #{units.size} jobs back to Redis")
31
- rescue => e
32
- Sidekiq.logger.warn("Failed to requeue #{units.size} jobs: #{e}")
33
- end
34
- end
35
-
36
- # https://github.com/mperham/sidekiq/commit/fce05c9d4b4c0411c982078a4cf3a63f20f739bc
37
- if Gem::Version.new(Sidekiq::VERSION) < Gem::Version.new("6.1.0")
38
- extend BulkRequeue
39
- else
40
- include BulkRequeue
41
- end
42
15
  # Timeout to sleep between fetch retries in case of no job received,
43
16
  # as well as timeout to wait for redis to give us something to work.
44
17
  TIMEOUT = 2
@@ -77,6 +50,20 @@ module Sidekiq
77
50
  nil
78
51
  end
79
52
 
53
+ def bulk_requeue(units, _options)
54
+ return if units.empty?
55
+
56
+ Sidekiq.logger.debug { "Re-queueing terminated jobs" }
57
+ Sidekiq.redis do |conn|
58
+ conn.pipelined do |pipeline|
59
+ units.each { |unit| unit.requeue(pipeline) }
60
+ end
61
+ end
62
+ Sidekiq.logger.info("Pushed #{units.size} jobs back to Redis")
63
+ rescue => e
64
+ Sidekiq.logger.warn("Failed to requeue #{units.size} jobs: #{e}")
65
+ end
66
+
80
67
  private
81
68
 
82
69
  # Tries to pop pair of `queue` and job `message` out of sidekiq queues.
@@ -91,7 +78,7 @@ module Sidekiq
91
78
  return
92
79
  end
93
80
 
94
- Sidekiq.redis { |conn| conn.brpop(*queues, TIMEOUT) }
81
+ Sidekiq.redis { |conn| conn.brpop(*queues, :timeout => TIMEOUT) }
95
82
  end
96
83
 
97
84
  # Returns list of queues to try to fetch jobs from.
@@ -3,6 +3,6 @@
3
3
  module Sidekiq
4
4
  module Throttled
5
5
  # Gem version
6
- VERSION = "0.16.2"
6
+ VERSION = "0.17.0"
7
7
  end
8
8
  end
@@ -97,18 +97,10 @@ module Sidekiq
97
97
  def setup_strategy!(sidekiq_config)
98
98
  require "sidekiq/throttled/fetch"
99
99
 
100
- sidekiq_version = Gem::Version.new(Sidekiq::VERSION)
101
-
102
100
  # https://github.com/mperham/sidekiq/commit/67daa7a408b214d593100f782271ed108686c147
103
- sidekiq_config = sidekiq_config.options if sidekiq_version < Gem::Version.new("6.5.0")
104
-
105
- # https://github.com/mperham/sidekiq/commit/fce05c9d4b4c0411c982078a4cf3a63f20f739bc
106
- sidekiq_config[:fetch] =
107
- if Gem::Version.new(Sidekiq::VERSION) < Gem::Version.new("6.1.0")
108
- Sidekiq::Throttled::Fetch
109
- else
110
- Sidekiq::Throttled::Fetch.new(sidekiq_config)
111
- end
101
+ sidekiq_config = sidekiq_config.options if Gem::Version.new(Sidekiq::VERSION) < Gem::Version.new("6.5.0")
102
+
103
+ sidekiq_config[:fetch] = Sidekiq::Throttled::Fetch.new(sidekiq_config)
112
104
  end
113
105
 
114
106
  # Tries to preload constant by it's name once.
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
30
30
 
31
31
  spec.add_runtime_dependency "concurrent-ruby"
32
32
  spec.add_runtime_dependency "redis-prescription"
33
- spec.add_runtime_dependency "sidekiq"
33
+ spec.add_runtime_dependency "sidekiq", ">= 6.4"
34
34
 
35
35
  spec.add_development_dependency "bundler", ">= 2.0"
36
36
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq-throttled
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.2
4
+ version: 0.17.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: 2022-07-19 00:00:00.000000000 Z
11
+ date: 2022-09-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '6.4'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '6.4'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -89,10 +89,6 @@ files:
89
89
  - LICENSE.md
90
90
  - README.md
91
91
  - Rakefile
92
- - gemfiles/sidekiq_6.0.gemfile
93
- - gemfiles/sidekiq_6.1.gemfile
94
- - gemfiles/sidekiq_6.2.gemfile
95
- - gemfiles/sidekiq_6.3.gemfile
96
92
  - gemfiles/sidekiq_6.4.gemfile
97
93
  - gemfiles/sidekiq_6.5.gemfile
98
94
  - lib/sidekiq/throttled.rb
@@ -155,7 +151,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
155
151
  - !ruby/object:Gem::Version
156
152
  version: '0'
157
153
  requirements: []
158
- rubygems_version: 3.1.6
154
+ rubygems_version: 3.2.33
159
155
  signing_key:
160
156
  specification_version: 4
161
157
  summary: Concurrency and threshold throttling for Sidekiq.
@@ -1,33 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "appraisal"
6
- gem "rake"
7
- gem "rspec"
8
- gem "sidekiq", "~> 6.0.0"
9
-
10
- group :development do
11
- gem "byebug"
12
- gem "guard", require: false
13
- gem "guard-rspec", require: false
14
- gem "guard-rubocop", require: false
15
- end
16
-
17
- group :test do
18
- gem "apparition"
19
- gem "capybara"
20
- gem "puma"
21
- gem "rack-test"
22
- gem "sinatra"
23
- gem "timecop"
24
- end
25
-
26
- group :lint do
27
- gem "rubocop", require: false
28
- gem "rubocop-performance", require: false
29
- gem "rubocop-rake", require: false
30
- gem "rubocop-rspec", require: false
31
- end
32
-
33
- gemspec path: "../"
@@ -1,33 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "appraisal"
6
- gem "rake"
7
- gem "rspec"
8
- gem "sidekiq", "~> 6.1.0"
9
-
10
- group :development do
11
- gem "byebug"
12
- gem "guard", require: false
13
- gem "guard-rspec", require: false
14
- gem "guard-rubocop", require: false
15
- end
16
-
17
- group :test do
18
- gem "apparition"
19
- gem "capybara"
20
- gem "puma"
21
- gem "rack-test"
22
- gem "sinatra"
23
- gem "timecop"
24
- end
25
-
26
- group :lint do
27
- gem "rubocop", require: false
28
- gem "rubocop-performance", require: false
29
- gem "rubocop-rake", require: false
30
- gem "rubocop-rspec", require: false
31
- end
32
-
33
- gemspec path: "../"
@@ -1,33 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "appraisal"
6
- gem "rake"
7
- gem "rspec"
8
- gem "sidekiq", "~> 6.2.0"
9
-
10
- group :development do
11
- gem "byebug"
12
- gem "guard", require: false
13
- gem "guard-rspec", require: false
14
- gem "guard-rubocop", require: false
15
- end
16
-
17
- group :test do
18
- gem "apparition"
19
- gem "capybara"
20
- gem "puma"
21
- gem "rack-test"
22
- gem "sinatra"
23
- gem "timecop"
24
- end
25
-
26
- group :lint do
27
- gem "rubocop", require: false
28
- gem "rubocop-performance", require: false
29
- gem "rubocop-rake", require: false
30
- gem "rubocop-rspec", require: false
31
- end
32
-
33
- gemspec path: "../"
@@ -1,33 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "appraisal"
6
- gem "rake"
7
- gem "rspec"
8
- gem "sidekiq", "~> 6.3.0"
9
-
10
- group :development do
11
- gem "byebug"
12
- gem "guard", require: false
13
- gem "guard-rspec", require: false
14
- gem "guard-rubocop", require: false
15
- end
16
-
17
- group :test do
18
- gem "apparition"
19
- gem "capybara"
20
- gem "puma"
21
- gem "rack-test"
22
- gem "sinatra"
23
- gem "timecop"
24
- end
25
-
26
- group :lint do
27
- gem "rubocop", require: false
28
- gem "rubocop-performance", require: false
29
- gem "rubocop-rake", require: false
30
- gem "rubocop-rspec", require: false
31
- end
32
-
33
- gemspec path: "../"