sidekiq-throttled 0.16.2 → 0.17.0
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/.github/workflows/ci.yml +1 -1
- data/.travis.yml +2 -4
- data/Appraisals +0 -16
- data/README.md +0 -4
- data/lib/sidekiq/throttled/fetch.rb +15 -28
- data/lib/sidekiq/throttled/version.rb +1 -1
- data/lib/sidekiq/throttled.rb +3 -11
- data/sidekiq-throttled.gemspec +1 -1
- metadata +5 -9
- data/gemfiles/sidekiq_6.0.gemfile +0 -33
- data/gemfiles/sidekiq_6.1.gemfile +0 -33
- data/gemfiles/sidekiq_6.2.gemfile +0 -33
- data/gemfiles/sidekiq_6.3.gemfile +0 -33
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1a4884da942e03171d7265651258f4da2ca601aa36219192b325a2ce0ff113fd
|
4
|
+
data.tar.gz: 7b1d20e64db0cf3720f4b404a95744b77de186da718feb7f6abd7cd23623e08d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 93699777efb1fd7794a7e566d6b129b0898f8efb327627b2a17b5e3e595a100fedc8b5a064ab8331b61c553cdd4a3aa2f3ac57c76d9d677c16ef006df18c592d
|
7
|
+
data.tar.gz: 9aaa27dbd6c116fbeac961cb8f8d1413bc1b9ff84241cfa81ce4b63b479a0b2386d6de8c94a6176a461d4f50867ce80957fd4b4569b5bd9db377d41fafbb247c
|
data/.github/workflows/ci.yml
CHANGED
data/.travis.yml
CHANGED
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
@@ -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.
|
data/lib/sidekiq/throttled.rb
CHANGED
@@ -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
|
104
|
-
|
105
|
-
|
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.
|
data/sidekiq-throttled.gemspec
CHANGED
@@ -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.
|
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-
|
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: '
|
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: '
|
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.
|
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: "../"
|