sidekiq-throttled 0.3.1 → 0.3.2
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/.travis.yml +4 -2
- data/Appraisals +11 -3
- data/CHANGES.md +8 -0
- data/Gemfile +2 -0
- data/gemfiles/{sidekiq_3.gemfile → sidekiq_3.x.gemfile} +1 -0
- data/gemfiles/sidekiq_4.0.gemfile +19 -0
- data/gemfiles/sidekiq_4.1.gemfile +19 -0
- data/gemfiles/{sidekiq_4.gemfile → sidekiq_latest.gemfile} +2 -1
- data/lib/sidekiq/throttled/basic_fetch.rb +5 -27
- data/lib/sidekiq/throttled/version.rb +2 -1
- data/sidekiq-throttled.gemspec +0 -1
- metadata +6 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 89651103d182029649562546de86fa491ac2fd78
|
4
|
+
data.tar.gz: b5d7b35e556a536c6d721d1332d66605120f5918
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a3a1c17f1b72f7e9afc361265519bf067b6460474b9396d19369c06c4d6a509e973500d5b9016b97ad948f753ab24ce18ff573f1d97d11f2649ae4c1471a0a72
|
7
|
+
data.tar.gz: 27e73f96f33a6c3acaaa0eb7b8ae25f6c5672cb8d57763df7e9a0cab32bd679184eaad46623b23f9e6de158a6ec0d9ace231e8f7b377d4e6dee0eed6ca2b29af
|
data/.travis.yml
CHANGED
@@ -19,8 +19,10 @@ matrix:
|
|
19
19
|
- rvm: rbx-2
|
20
20
|
fast_finish: true
|
21
21
|
gemfile:
|
22
|
-
- gemfiles/sidekiq_3.gemfile
|
23
|
-
- gemfiles/sidekiq_4.gemfile
|
22
|
+
- gemfiles/sidekiq_3.x.gemfile
|
23
|
+
- gemfiles/sidekiq_4.0.gemfile
|
24
|
+
- gemfiles/sidekiq_4.1.gemfile
|
25
|
+
- gemfiles/sidekiq_latest.gemfile
|
24
26
|
before_install:
|
25
27
|
- gem install bundler -v 1.10.6
|
26
28
|
services:
|
data/Appraisals
CHANGED
@@ -1,8 +1,16 @@
|
|
1
|
-
appraise "sidekiq-3" do
|
1
|
+
appraise "sidekiq-3.x" do
|
2
2
|
gem "celluloid"
|
3
3
|
gem "sidekiq", "~> 3.0"
|
4
4
|
end
|
5
5
|
|
6
|
-
appraise "sidekiq-4" do
|
7
|
-
gem "sidekiq", "~> 4.0"
|
6
|
+
appraise "sidekiq-4.0" do
|
7
|
+
gem "sidekiq", "~> 4.0.0"
|
8
|
+
end
|
9
|
+
|
10
|
+
appraise "sidekiq-4.1" do
|
11
|
+
gem "sidekiq", "~> 4.1.0"
|
12
|
+
end
|
13
|
+
|
14
|
+
appraise "sidekiq-latest" do
|
15
|
+
gem "sidekiq"
|
8
16
|
end
|
data/CHANGES.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
## 0.3.2 (2016-05-16)
|
2
|
+
|
3
|
+
* [#13](https://github.com/sensortower/sidekiq-throttled/issues/13)
|
4
|
+
Fix throttled BasicFetch with strictly ordered queues on sidekiq 4.
|
5
|
+
([@palanglung], [@ixti])
|
6
|
+
|
7
|
+
|
1
8
|
## 0.3.1 (2016-05-15)
|
2
9
|
|
3
10
|
* Precalculate LUA script digests to reduce bandwidth upon nodes reload
|
@@ -26,3 +33,4 @@
|
|
26
33
|
|
27
34
|
[@ixti]: https://github.com/ixti
|
28
35
|
[@fhwang]: https://github.com/fhwang
|
36
|
+
[@palanglung]: https://github.com/palanglung
|
data/Gemfile
CHANGED
@@ -0,0 +1,19 @@
|
|
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 "rubocop"
|
9
|
+
gem "sidekiq", "~> 4.0.0"
|
10
|
+
|
11
|
+
group :test do
|
12
|
+
gem "coveralls"
|
13
|
+
gem "rack-test"
|
14
|
+
gem "simplecov", ">= 0.9"
|
15
|
+
gem "sinatra", "~> 1.4", ">= 1.4.6"
|
16
|
+
gem "timecop"
|
17
|
+
end
|
18
|
+
|
19
|
+
gemspec :path => "../"
|
@@ -0,0 +1,19 @@
|
|
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 "rubocop"
|
9
|
+
gem "sidekiq", "~> 4.1.0"
|
10
|
+
|
11
|
+
group :test do
|
12
|
+
gem "coveralls"
|
13
|
+
gem "rack-test"
|
14
|
+
gem "simplecov", ">= 0.9"
|
15
|
+
gem "sinatra", "~> 1.4", ">= 1.4.6"
|
16
|
+
gem "timecop"
|
17
|
+
end
|
18
|
+
|
19
|
+
gemspec :path => "../"
|
@@ -1,8 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
# stdlib
|
3
|
-
require "thread"
|
4
2
|
|
5
|
-
# 3rd party
|
6
3
|
require "celluloid" if Sidekiq::VERSION < "4.0.0"
|
7
4
|
require "sidekiq"
|
8
5
|
require "sidekiq/fetch"
|
@@ -17,12 +14,10 @@ module Sidekiq
|
|
17
14
|
alias job message if Sidekiq::VERSION < "4.0.0"
|
18
15
|
end
|
19
16
|
|
20
|
-
|
21
|
-
|
22
|
-
@
|
23
|
-
@
|
24
|
-
|
25
|
-
super(*args)
|
17
|
+
def initialize(options)
|
18
|
+
@strictly_ordered_queues = (options[:strict] ? true : false)
|
19
|
+
@queues = options[:queues].map { |q| "queue:#{q}" }
|
20
|
+
@queues.uniq! if @strictly_ordered_queues
|
26
21
|
end
|
27
22
|
|
28
23
|
# @return [Sidekiq::BasicFetch::UnitOfWork, nil]
|
@@ -35,7 +30,6 @@ module Sidekiq
|
|
35
30
|
|
36
31
|
queue = "queue:#{work.queue_name}"
|
37
32
|
|
38
|
-
@mutex.synchronize { @suspended << queue }
|
39
33
|
Sidekiq.redis { |conn| conn.lpush(queue, work.job) }
|
40
34
|
|
41
35
|
nil
|
@@ -46,23 +40,7 @@ module Sidekiq
|
|
46
40
|
# Tries to pop pair of `queue` and job `message` out of sidekiq queue.
|
47
41
|
# @return [Array<String, String>, nil]
|
48
42
|
def brpop
|
49
|
-
queues =
|
50
|
-
@unique_queues.dup
|
51
|
-
else
|
52
|
-
@queues.shuffle.uniq
|
53
|
-
end
|
54
|
-
|
55
|
-
@mutex.synchronize do
|
56
|
-
next if @suspended.empty?
|
57
|
-
queues -= @suspended
|
58
|
-
@suspended.clear
|
59
|
-
end
|
60
|
-
|
61
|
-
if queues.empty?
|
62
|
-
sleep TIMEOUT
|
63
|
-
return
|
64
|
-
end
|
65
|
-
|
43
|
+
queues = (@strictly_ordered_queues ? @queues : @queues.shuffle.uniq)
|
66
44
|
Sidekiq.redis { |conn| conn.brpop(*queues, TIMEOUT) }
|
67
45
|
end
|
68
46
|
end
|
data/sidekiq-throttled.gemspec
CHANGED
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.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexey V Zapparov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-05-
|
11
|
+
date: 2016-05-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sidekiq
|
@@ -38,20 +38,6 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.10'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: rake
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - "~>"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '10.0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - "~>"
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '10.0'
|
55
41
|
description: Concurrency and threshold throttling for Sidekiq.
|
56
42
|
email:
|
57
43
|
- ixti@member.fsf.org
|
@@ -71,8 +57,10 @@ files:
|
|
71
57
|
- README.md
|
72
58
|
- Rakefile
|
73
59
|
- bin/setup
|
74
|
-
- gemfiles/sidekiq_3.gemfile
|
75
|
-
- gemfiles/sidekiq_4.gemfile
|
60
|
+
- gemfiles/sidekiq_3.x.gemfile
|
61
|
+
- gemfiles/sidekiq_4.0.gemfile
|
62
|
+
- gemfiles/sidekiq_4.1.gemfile
|
63
|
+
- gemfiles/sidekiq_latest.gemfile
|
76
64
|
- lib/sidekiq/throttled.rb
|
77
65
|
- lib/sidekiq/throttled/basic_fetch.rb
|
78
66
|
- lib/sidekiq/throttled/errors.rb
|