sidekiq-limit_fetch 3.3.0 → 4.0.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 +5 -5
- data/.github/workflows/ci.yml +42 -0
- data/Appraisals +35 -0
- data/README.md +13 -16
- data/demo/Gemfile +0 -2
- data/demo/Rakefile +1 -1
- data/gemfiles/sidekiq_5.0.gemfile +7 -0
- data/gemfiles/sidekiq_5.0.gemfile.lock +57 -0
- data/gemfiles/sidekiq_5.1.gemfile +7 -0
- data/gemfiles/sidekiq_5.1.gemfile.lock +57 -0
- data/gemfiles/sidekiq_5.2.gemfile +7 -0
- data/gemfiles/sidekiq_5.2.gemfile.lock +56 -0
- data/gemfiles/sidekiq_6.0.gemfile +7 -0
- data/gemfiles/sidekiq_6.0.gemfile.lock +56 -0
- data/gemfiles/sidekiq_6.1.gemfile +7 -0
- data/gemfiles/sidekiq_6.1.gemfile.lock +53 -0
- data/gemfiles/sidekiq_6.2.gemfile +7 -0
- data/gemfiles/sidekiq_6.2.gemfile.lock +53 -0
- data/gemfiles/sidekiq_6.3.gemfile +7 -0
- data/gemfiles/sidekiq_6.3.gemfile.lock +53 -0
- data/gemfiles/sidekiq_6.4.gemfile +7 -0
- data/gemfiles/sidekiq_6.4.gemfile.lock +53 -0
- data/gemfiles/sidekiq_master.gemfile +7 -0
- data/gemfiles/sidekiq_master.gemfile.lock +58 -0
- data/lib/sidekiq/extensions/queue.rb +2 -1
- data/lib/sidekiq/limit_fetch/global/monitor.rb +7 -7
- data/lib/sidekiq/limit_fetch/global/semaphore.rb +8 -0
- data/lib/sidekiq/limit_fetch/instances.rb +4 -0
- data/lib/sidekiq/limit_fetch/queues.rb +73 -20
- data/lib/sidekiq/limit_fetch.rb +8 -2
- data/sidekiq-limit_fetch.gemspec +7 -8
- data/spec/spec_helper.rb +7 -7
- metadata +65 -19
- data/.travis.yml +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 88e19126b173869fae0b5046533e8615d2785fb903f01b979cbcdea65e7824b5
|
4
|
+
data.tar.gz: 212cfdcf179fa2aceb6eb065e7bd384109f3afbf2ff08da27699197a300cf044
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0f0c99a5e6d183f9ce41c7bfd85f74926efad1515f29d88d24c7c1076b108121ed9c963ea60d76406c4a006e9b49dcb09239d9fe5b14e59e8f3702b7e4591689
|
7
|
+
data.tar.gz: 888322ef2940592c4d65095b136a4a4cf27cfe7f9bb470cb071fe3a47028cd095fc9b4c30392cb3d25be26536126851f357a61f6b31145dfb31add97f9250bec
|
@@ -0,0 +1,42 @@
|
|
1
|
+
name: CI
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ master ]
|
6
|
+
pull_request:
|
7
|
+
branches: [ master ]
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
test:
|
11
|
+
|
12
|
+
runs-on: ubuntu-latest
|
13
|
+
|
14
|
+
strategy:
|
15
|
+
fail-fast: false
|
16
|
+
matrix:
|
17
|
+
ruby: ["2.6", "2.7", "3.0", "3.1", jruby-9.3]
|
18
|
+
appraisal: ['5.0', '5.1', '5.2', '6.0', '6.1', '6.2', '6.3', '6.4']
|
19
|
+
services:
|
20
|
+
redis:
|
21
|
+
image: redis
|
22
|
+
options: >-
|
23
|
+
--health-cmd "redis-cli ping"
|
24
|
+
--health-interval 10s
|
25
|
+
--health-timeout 5s
|
26
|
+
--health-retries 5
|
27
|
+
ports:
|
28
|
+
- 6379:6379
|
29
|
+
|
30
|
+
steps:
|
31
|
+
- uses: actions/checkout@v2
|
32
|
+
- name: Set up Ruby
|
33
|
+
uses: ruby/setup-ruby@v1
|
34
|
+
with:
|
35
|
+
ruby-version: ${{ matrix.ruby }}
|
36
|
+
bundler-cache: false
|
37
|
+
- name: Bundle for Appraisal
|
38
|
+
run: bundle
|
39
|
+
- name: Install Appraisal dependencies
|
40
|
+
run: bundle exec appraisal sidekiq-${{ matrix.appraisal }} bundle
|
41
|
+
- name: Run tests
|
42
|
+
run: bundle exec appraisal sidekiq-${{ matrix.appraisal }} bundle exec rake
|
data/Appraisals
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
appraise 'sidekiq-5.0' do
|
2
|
+
gem 'sidekiq', '~> 5.0.0'
|
3
|
+
end
|
4
|
+
|
5
|
+
appraise 'sidekiq-5.1' do
|
6
|
+
gem 'sidekiq', '~> 5.1.0'
|
7
|
+
end
|
8
|
+
|
9
|
+
appraise 'sidekiq-5.2' do
|
10
|
+
gem 'sidekiq', '~> 5.2.0'
|
11
|
+
end
|
12
|
+
|
13
|
+
appraise 'sidekiq-6.0' do
|
14
|
+
gem 'sidekiq', '~> 6.0.0'
|
15
|
+
end
|
16
|
+
|
17
|
+
appraise 'sidekiq-6.1' do
|
18
|
+
gem 'sidekiq', '~> 6.1.0'
|
19
|
+
end
|
20
|
+
|
21
|
+
appraise 'sidekiq-6.2' do
|
22
|
+
gem 'sidekiq', '~> 6.2.0'
|
23
|
+
end
|
24
|
+
|
25
|
+
appraise 'sidekiq-6.3' do
|
26
|
+
gem 'sidekiq', '~> 6.3.0'
|
27
|
+
end
|
28
|
+
|
29
|
+
appraise 'sidekiq-6.4' do
|
30
|
+
gem 'sidekiq', '~> 6.4.0'
|
31
|
+
end
|
32
|
+
|
33
|
+
appraise 'sidekiq-master' do
|
34
|
+
gem 'sidekiq', github: 'mperham/sidekiq'
|
35
|
+
end
|
data/README.md
CHANGED
@@ -1,27 +1,30 @@
|
|
1
1
|
## Description
|
2
2
|
|
3
|
-
|
4
|
-
limiting, pausing, blocking, querying.
|
3
|
+
*This project is currently being taken over by [@deanpcmad](https://github.com/deanpcmad) and will be updated soon*
|
5
4
|
|
6
|
-
|
7
|
-
[](http://badge.fury.io/rb/sidekiq-limit_fetch)
|
8
|
-
[](https://gemnasium.com/brainopia/sidekiq-limit_fetch)
|
9
|
-
[](https://codeclimate.com/github/brainopia/sidekiq-limit_fetch)
|
5
|
+
Sidekiq strategy to support a granular queue control – limiting, pausing, blocking, querying.
|
10
6
|
|
11
|
-
|
7
|
+
[](https://github.com/deanpcmad/sidekiq-limit_fetch/actions/workflows/ci.yml)
|
8
|
+
[](http://badge.fury.io/rb/sidekiq-limit_fetch)
|
9
|
+
|
10
|
+
### Installation
|
12
11
|
|
13
12
|
Add this line to your application's Gemfile:
|
14
13
|
|
15
14
|
gem 'sidekiq-limit_fetch'
|
16
15
|
|
17
|
-
###
|
16
|
+
### Limitations
|
18
17
|
|
19
18
|
**Important note:** At this moment, `sidekiq-limit_fetch` is incompatible with
|
20
19
|
- sidekiq pro's `reliable_fetch`
|
21
20
|
- `sidekiq-rate-limiter`
|
22
21
|
- any other plugin that rewrites fetch strategy of sidekiq.
|
23
22
|
|
24
|
-
|
23
|
+
### Usage
|
24
|
+
|
25
|
+
If you are using this with Rails, you don't need to require it as it's done automatically.
|
26
|
+
|
27
|
+
To use this Gem in other Ruby projects, just add `require 'sidekiq-limit_fetch'`.
|
25
28
|
|
26
29
|
### Limits
|
27
30
|
|
@@ -71,7 +74,7 @@ You can see how many workers currently handling a queue:
|
|
71
74
|
|
72
75
|
### Pauses
|
73
76
|
|
74
|
-
You can also pause your queues
|
77
|
+
You can also pause your queues temporarily. Upon continuing their limits
|
75
78
|
will be preserved.
|
76
79
|
|
77
80
|
```ruby
|
@@ -148,9 +151,3 @@ Dynamic queues will be ran at the lowest priority.
|
|
148
151
|
### Maintenance
|
149
152
|
|
150
153
|
If you use ```flushdb```, restart the sidekiq process to re-populate the dynamic configuration.
|
151
|
-
|
152
|
-
### Thanks
|
153
|
-
|
154
|
-
<a href="https://evilmartians.com/?utm_source=sidekiq-limit_fetch">
|
155
|
-
<img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg" alt="Sponsored by Evil Martians" width="236" height="54"></a>
|
156
|
-
|
data/demo/Gemfile
CHANGED
data/demo/Rakefile
CHANGED
@@ -0,0 +1,57 @@
|
|
1
|
+
PATH
|
2
|
+
remote: ..
|
3
|
+
specs:
|
4
|
+
sidekiq-limit_fetch (3.4.0)
|
5
|
+
redis (>= 4.6.0)
|
6
|
+
sidekiq (>= 4)
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: https://rubygems.org/
|
10
|
+
specs:
|
11
|
+
appraisal (2.4.1)
|
12
|
+
bundler
|
13
|
+
rake
|
14
|
+
thor (>= 0.14.0)
|
15
|
+
concurrent-ruby (1.1.10)
|
16
|
+
connection_pool (2.2.5)
|
17
|
+
diff-lcs (1.5.0)
|
18
|
+
rack (2.2.3)
|
19
|
+
rack-protection (2.2.0)
|
20
|
+
rack
|
21
|
+
rake (13.0.6)
|
22
|
+
redis (4.6.0)
|
23
|
+
redis-namespace (1.8.2)
|
24
|
+
redis (>= 3.0.4)
|
25
|
+
rspec (3.11.0)
|
26
|
+
rspec-core (~> 3.11.0)
|
27
|
+
rspec-expectations (~> 3.11.0)
|
28
|
+
rspec-mocks (~> 3.11.0)
|
29
|
+
rspec-core (3.11.0)
|
30
|
+
rspec-support (~> 3.11.0)
|
31
|
+
rspec-expectations (3.11.0)
|
32
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
33
|
+
rspec-support (~> 3.11.0)
|
34
|
+
rspec-mocks (3.11.0)
|
35
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
36
|
+
rspec-support (~> 3.11.0)
|
37
|
+
rspec-support (3.11.0)
|
38
|
+
sidekiq (5.0.5)
|
39
|
+
concurrent-ruby (~> 1.0)
|
40
|
+
connection_pool (~> 2.2, >= 2.2.0)
|
41
|
+
rack-protection (>= 1.5.0)
|
42
|
+
redis (>= 3.3.4, < 5)
|
43
|
+
thor (1.2.1)
|
44
|
+
|
45
|
+
PLATFORMS
|
46
|
+
x86_64-linux
|
47
|
+
|
48
|
+
DEPENDENCIES
|
49
|
+
appraisal
|
50
|
+
rake
|
51
|
+
redis-namespace (~> 1.5, >= 1.5.2)
|
52
|
+
rspec
|
53
|
+
sidekiq (~> 5.0.0)
|
54
|
+
sidekiq-limit_fetch!
|
55
|
+
|
56
|
+
BUNDLED WITH
|
57
|
+
2.3.6
|
@@ -0,0 +1,57 @@
|
|
1
|
+
PATH
|
2
|
+
remote: ..
|
3
|
+
specs:
|
4
|
+
sidekiq-limit_fetch (3.4.0)
|
5
|
+
redis (>= 4.6.0)
|
6
|
+
sidekiq (>= 4)
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: https://rubygems.org/
|
10
|
+
specs:
|
11
|
+
appraisal (2.4.1)
|
12
|
+
bundler
|
13
|
+
rake
|
14
|
+
thor (>= 0.14.0)
|
15
|
+
concurrent-ruby (1.1.10)
|
16
|
+
connection_pool (2.2.5)
|
17
|
+
diff-lcs (1.5.0)
|
18
|
+
rack (2.2.3)
|
19
|
+
rack-protection (2.2.0)
|
20
|
+
rack
|
21
|
+
rake (13.0.6)
|
22
|
+
redis (4.6.0)
|
23
|
+
redis-namespace (1.8.2)
|
24
|
+
redis (>= 3.0.4)
|
25
|
+
rspec (3.11.0)
|
26
|
+
rspec-core (~> 3.11.0)
|
27
|
+
rspec-expectations (~> 3.11.0)
|
28
|
+
rspec-mocks (~> 3.11.0)
|
29
|
+
rspec-core (3.11.0)
|
30
|
+
rspec-support (~> 3.11.0)
|
31
|
+
rspec-expectations (3.11.0)
|
32
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
33
|
+
rspec-support (~> 3.11.0)
|
34
|
+
rspec-mocks (3.11.0)
|
35
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
36
|
+
rspec-support (~> 3.11.0)
|
37
|
+
rspec-support (3.11.0)
|
38
|
+
sidekiq (5.1.3)
|
39
|
+
concurrent-ruby (~> 1.0)
|
40
|
+
connection_pool (~> 2.2, >= 2.2.0)
|
41
|
+
rack-protection (>= 1.5.0)
|
42
|
+
redis (>= 3.3.5, < 5)
|
43
|
+
thor (1.2.1)
|
44
|
+
|
45
|
+
PLATFORMS
|
46
|
+
x86_64-linux
|
47
|
+
|
48
|
+
DEPENDENCIES
|
49
|
+
appraisal
|
50
|
+
rake
|
51
|
+
redis-namespace (~> 1.5, >= 1.5.2)
|
52
|
+
rspec
|
53
|
+
sidekiq (~> 5.1.0)
|
54
|
+
sidekiq-limit_fetch!
|
55
|
+
|
56
|
+
BUNDLED WITH
|
57
|
+
2.3.6
|
@@ -0,0 +1,56 @@
|
|
1
|
+
PATH
|
2
|
+
remote: ..
|
3
|
+
specs:
|
4
|
+
sidekiq-limit_fetch (3.4.0)
|
5
|
+
redis (>= 4.6.0)
|
6
|
+
sidekiq (>= 4)
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: https://rubygems.org/
|
10
|
+
specs:
|
11
|
+
appraisal (2.4.1)
|
12
|
+
bundler
|
13
|
+
rake
|
14
|
+
thor (>= 0.14.0)
|
15
|
+
connection_pool (2.2.5)
|
16
|
+
diff-lcs (1.5.0)
|
17
|
+
rack (2.0.9)
|
18
|
+
rack-protection (2.2.0)
|
19
|
+
rack
|
20
|
+
rake (13.0.6)
|
21
|
+
redis (4.6.0)
|
22
|
+
redis-namespace (1.8.2)
|
23
|
+
redis (>= 3.0.4)
|
24
|
+
rspec (3.11.0)
|
25
|
+
rspec-core (~> 3.11.0)
|
26
|
+
rspec-expectations (~> 3.11.0)
|
27
|
+
rspec-mocks (~> 3.11.0)
|
28
|
+
rspec-core (3.11.0)
|
29
|
+
rspec-support (~> 3.11.0)
|
30
|
+
rspec-expectations (3.11.0)
|
31
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
32
|
+
rspec-support (~> 3.11.0)
|
33
|
+
rspec-mocks (3.11.0)
|
34
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
35
|
+
rspec-support (~> 3.11.0)
|
36
|
+
rspec-support (3.11.0)
|
37
|
+
sidekiq (5.2.8)
|
38
|
+
connection_pool (~> 2.2, >= 2.2.2)
|
39
|
+
rack (< 2.1.0)
|
40
|
+
rack-protection (>= 1.5.0)
|
41
|
+
redis (>= 3.3.5, < 5)
|
42
|
+
thor (1.2.1)
|
43
|
+
|
44
|
+
PLATFORMS
|
45
|
+
x86_64-linux
|
46
|
+
|
47
|
+
DEPENDENCIES
|
48
|
+
appraisal
|
49
|
+
rake
|
50
|
+
redis-namespace (~> 1.5, >= 1.5.2)
|
51
|
+
rspec
|
52
|
+
sidekiq (~> 5.2.0)
|
53
|
+
sidekiq-limit_fetch!
|
54
|
+
|
55
|
+
BUNDLED WITH
|
56
|
+
2.3.6
|
@@ -0,0 +1,56 @@
|
|
1
|
+
PATH
|
2
|
+
remote: ..
|
3
|
+
specs:
|
4
|
+
sidekiq-limit_fetch (3.4.0)
|
5
|
+
redis (>= 4.6.0)
|
6
|
+
sidekiq (>= 4)
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: https://rubygems.org/
|
10
|
+
specs:
|
11
|
+
appraisal (2.4.1)
|
12
|
+
bundler
|
13
|
+
rake
|
14
|
+
thor (>= 0.14.0)
|
15
|
+
connection_pool (2.2.5)
|
16
|
+
diff-lcs (1.5.0)
|
17
|
+
rack (2.2.3)
|
18
|
+
rack-protection (2.2.0)
|
19
|
+
rack
|
20
|
+
rake (13.0.6)
|
21
|
+
redis (4.6.0)
|
22
|
+
redis-namespace (1.8.2)
|
23
|
+
redis (>= 3.0.4)
|
24
|
+
rspec (3.11.0)
|
25
|
+
rspec-core (~> 3.11.0)
|
26
|
+
rspec-expectations (~> 3.11.0)
|
27
|
+
rspec-mocks (~> 3.11.0)
|
28
|
+
rspec-core (3.11.0)
|
29
|
+
rspec-support (~> 3.11.0)
|
30
|
+
rspec-expectations (3.11.0)
|
31
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
32
|
+
rspec-support (~> 3.11.0)
|
33
|
+
rspec-mocks (3.11.0)
|
34
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
35
|
+
rspec-support (~> 3.11.0)
|
36
|
+
rspec-support (3.11.0)
|
37
|
+
sidekiq (6.0.7)
|
38
|
+
connection_pool (>= 2.2.2)
|
39
|
+
rack (~> 2.0)
|
40
|
+
rack-protection (>= 2.0.0)
|
41
|
+
redis (>= 4.1.0)
|
42
|
+
thor (1.2.1)
|
43
|
+
|
44
|
+
PLATFORMS
|
45
|
+
x86_64-linux
|
46
|
+
|
47
|
+
DEPENDENCIES
|
48
|
+
appraisal
|
49
|
+
rake
|
50
|
+
redis-namespace (~> 1.5, >= 1.5.2)
|
51
|
+
rspec
|
52
|
+
sidekiq (~> 6.0.0)
|
53
|
+
sidekiq-limit_fetch!
|
54
|
+
|
55
|
+
BUNDLED WITH
|
56
|
+
2.3.6
|
@@ -0,0 +1,53 @@
|
|
1
|
+
PATH
|
2
|
+
remote: ..
|
3
|
+
specs:
|
4
|
+
sidekiq-limit_fetch (3.4.0)
|
5
|
+
redis (>= 4.6.0)
|
6
|
+
sidekiq (>= 4)
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: https://rubygems.org/
|
10
|
+
specs:
|
11
|
+
appraisal (2.4.1)
|
12
|
+
bundler
|
13
|
+
rake
|
14
|
+
thor (>= 0.14.0)
|
15
|
+
connection_pool (2.2.5)
|
16
|
+
diff-lcs (1.5.0)
|
17
|
+
rack (2.2.3)
|
18
|
+
rake (13.0.6)
|
19
|
+
redis (4.6.0)
|
20
|
+
redis-namespace (1.8.2)
|
21
|
+
redis (>= 3.0.4)
|
22
|
+
rspec (3.11.0)
|
23
|
+
rspec-core (~> 3.11.0)
|
24
|
+
rspec-expectations (~> 3.11.0)
|
25
|
+
rspec-mocks (~> 3.11.0)
|
26
|
+
rspec-core (3.11.0)
|
27
|
+
rspec-support (~> 3.11.0)
|
28
|
+
rspec-expectations (3.11.0)
|
29
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
30
|
+
rspec-support (~> 3.11.0)
|
31
|
+
rspec-mocks (3.11.0)
|
32
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
33
|
+
rspec-support (~> 3.11.0)
|
34
|
+
rspec-support (3.11.0)
|
35
|
+
sidekiq (6.1.3)
|
36
|
+
connection_pool (>= 2.2.2)
|
37
|
+
rack (~> 2.0)
|
38
|
+
redis (>= 4.2.0)
|
39
|
+
thor (1.2.1)
|
40
|
+
|
41
|
+
PLATFORMS
|
42
|
+
x86_64-linux
|
43
|
+
|
44
|
+
DEPENDENCIES
|
45
|
+
appraisal
|
46
|
+
rake
|
47
|
+
redis-namespace (~> 1.5, >= 1.5.2)
|
48
|
+
rspec
|
49
|
+
sidekiq (~> 6.1.0)
|
50
|
+
sidekiq-limit_fetch!
|
51
|
+
|
52
|
+
BUNDLED WITH
|
53
|
+
2.3.6
|
@@ -0,0 +1,53 @@
|
|
1
|
+
PATH
|
2
|
+
remote: ..
|
3
|
+
specs:
|
4
|
+
sidekiq-limit_fetch (3.4.0)
|
5
|
+
redis (>= 4.6.0)
|
6
|
+
sidekiq (>= 4)
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: https://rubygems.org/
|
10
|
+
specs:
|
11
|
+
appraisal (2.4.1)
|
12
|
+
bundler
|
13
|
+
rake
|
14
|
+
thor (>= 0.14.0)
|
15
|
+
connection_pool (2.2.5)
|
16
|
+
diff-lcs (1.5.0)
|
17
|
+
rack (2.2.3)
|
18
|
+
rake (13.0.6)
|
19
|
+
redis (4.6.0)
|
20
|
+
redis-namespace (1.8.2)
|
21
|
+
redis (>= 3.0.4)
|
22
|
+
rspec (3.11.0)
|
23
|
+
rspec-core (~> 3.11.0)
|
24
|
+
rspec-expectations (~> 3.11.0)
|
25
|
+
rspec-mocks (~> 3.11.0)
|
26
|
+
rspec-core (3.11.0)
|
27
|
+
rspec-support (~> 3.11.0)
|
28
|
+
rspec-expectations (3.11.0)
|
29
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
30
|
+
rspec-support (~> 3.11.0)
|
31
|
+
rspec-mocks (3.11.0)
|
32
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
33
|
+
rspec-support (~> 3.11.0)
|
34
|
+
rspec-support (3.11.0)
|
35
|
+
sidekiq (6.2.1)
|
36
|
+
connection_pool (>= 2.2.2)
|
37
|
+
rack (~> 2.0)
|
38
|
+
redis (>= 4.2.0)
|
39
|
+
thor (1.2.1)
|
40
|
+
|
41
|
+
PLATFORMS
|
42
|
+
x86_64-linux
|
43
|
+
|
44
|
+
DEPENDENCIES
|
45
|
+
appraisal
|
46
|
+
rake
|
47
|
+
redis-namespace (~> 1.5, >= 1.5.2)
|
48
|
+
rspec
|
49
|
+
sidekiq (~> 6.2.0)
|
50
|
+
sidekiq-limit_fetch!
|
51
|
+
|
52
|
+
BUNDLED WITH
|
53
|
+
2.3.6
|
@@ -0,0 +1,53 @@
|
|
1
|
+
PATH
|
2
|
+
remote: ..
|
3
|
+
specs:
|
4
|
+
sidekiq-limit_fetch (3.4.0)
|
5
|
+
redis (>= 4.6.0)
|
6
|
+
sidekiq (>= 4)
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: https://rubygems.org/
|
10
|
+
specs:
|
11
|
+
appraisal (2.4.1)
|
12
|
+
bundler
|
13
|
+
rake
|
14
|
+
thor (>= 0.14.0)
|
15
|
+
connection_pool (2.2.5)
|
16
|
+
diff-lcs (1.5.0)
|
17
|
+
rack (2.2.3)
|
18
|
+
rake (13.0.6)
|
19
|
+
redis (4.6.0)
|
20
|
+
redis-namespace (1.8.2)
|
21
|
+
redis (>= 3.0.4)
|
22
|
+
rspec (3.11.0)
|
23
|
+
rspec-core (~> 3.11.0)
|
24
|
+
rspec-expectations (~> 3.11.0)
|
25
|
+
rspec-mocks (~> 3.11.0)
|
26
|
+
rspec-core (3.11.0)
|
27
|
+
rspec-support (~> 3.11.0)
|
28
|
+
rspec-expectations (3.11.0)
|
29
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
30
|
+
rspec-support (~> 3.11.0)
|
31
|
+
rspec-mocks (3.11.0)
|
32
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
33
|
+
rspec-support (~> 3.11.0)
|
34
|
+
rspec-support (3.11.0)
|
35
|
+
sidekiq (6.3.1)
|
36
|
+
connection_pool (>= 2.2.2)
|
37
|
+
rack (~> 2.0)
|
38
|
+
redis (>= 4.2.0)
|
39
|
+
thor (1.2.1)
|
40
|
+
|
41
|
+
PLATFORMS
|
42
|
+
x86_64-linux
|
43
|
+
|
44
|
+
DEPENDENCIES
|
45
|
+
appraisal
|
46
|
+
rake
|
47
|
+
redis-namespace (~> 1.5, >= 1.5.2)
|
48
|
+
rspec
|
49
|
+
sidekiq (~> 6.3.0)
|
50
|
+
sidekiq-limit_fetch!
|
51
|
+
|
52
|
+
BUNDLED WITH
|
53
|
+
2.3.6
|
@@ -0,0 +1,53 @@
|
|
1
|
+
PATH
|
2
|
+
remote: ..
|
3
|
+
specs:
|
4
|
+
sidekiq-limit_fetch (3.4.0)
|
5
|
+
redis (>= 4.6.0)
|
6
|
+
sidekiq (>= 4)
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: https://rubygems.org/
|
10
|
+
specs:
|
11
|
+
appraisal (2.4.1)
|
12
|
+
bundler
|
13
|
+
rake
|
14
|
+
thor (>= 0.14.0)
|
15
|
+
connection_pool (2.2.5)
|
16
|
+
diff-lcs (1.5.0)
|
17
|
+
rack (2.2.3)
|
18
|
+
rake (13.0.6)
|
19
|
+
redis (4.6.0)
|
20
|
+
redis-namespace (1.8.2)
|
21
|
+
redis (>= 3.0.4)
|
22
|
+
rspec (3.11.0)
|
23
|
+
rspec-core (~> 3.11.0)
|
24
|
+
rspec-expectations (~> 3.11.0)
|
25
|
+
rspec-mocks (~> 3.11.0)
|
26
|
+
rspec-core (3.11.0)
|
27
|
+
rspec-support (~> 3.11.0)
|
28
|
+
rspec-expectations (3.11.0)
|
29
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
30
|
+
rspec-support (~> 3.11.0)
|
31
|
+
rspec-mocks (3.11.0)
|
32
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
33
|
+
rspec-support (~> 3.11.0)
|
34
|
+
rspec-support (3.11.0)
|
35
|
+
sidekiq (6.4.1)
|
36
|
+
connection_pool (>= 2.2.2)
|
37
|
+
rack (~> 2.0)
|
38
|
+
redis (>= 4.2.0)
|
39
|
+
thor (1.2.1)
|
40
|
+
|
41
|
+
PLATFORMS
|
42
|
+
x86_64-linux
|
43
|
+
|
44
|
+
DEPENDENCIES
|
45
|
+
appraisal
|
46
|
+
rake
|
47
|
+
redis-namespace (~> 1.5, >= 1.5.2)
|
48
|
+
rspec
|
49
|
+
sidekiq (~> 6.4.0)
|
50
|
+
sidekiq-limit_fetch!
|
51
|
+
|
52
|
+
BUNDLED WITH
|
53
|
+
2.3.6
|
@@ -0,0 +1,58 @@
|
|
1
|
+
GIT
|
2
|
+
remote: https://github.com/mperham/sidekiq.git
|
3
|
+
revision: cf7b067c89ae3b1303e35d29408099cf40991f6d
|
4
|
+
specs:
|
5
|
+
sidekiq (6.4.2)
|
6
|
+
connection_pool (>= 2.2.2)
|
7
|
+
rack (~> 2.0)
|
8
|
+
redis (>= 4.2.0)
|
9
|
+
|
10
|
+
PATH
|
11
|
+
remote: ..
|
12
|
+
specs:
|
13
|
+
sidekiq-limit_fetch (3.4.0)
|
14
|
+
redis (>= 4.6.0)
|
15
|
+
sidekiq (>= 4)
|
16
|
+
|
17
|
+
GEM
|
18
|
+
remote: https://rubygems.org/
|
19
|
+
specs:
|
20
|
+
appraisal (2.4.1)
|
21
|
+
bundler
|
22
|
+
rake
|
23
|
+
thor (>= 0.14.0)
|
24
|
+
connection_pool (2.2.5)
|
25
|
+
diff-lcs (1.5.0)
|
26
|
+
rack (2.2.3)
|
27
|
+
rake (13.0.6)
|
28
|
+
redis (4.6.0)
|
29
|
+
redis-namespace (1.8.2)
|
30
|
+
redis (>= 3.0.4)
|
31
|
+
rspec (3.11.0)
|
32
|
+
rspec-core (~> 3.11.0)
|
33
|
+
rspec-expectations (~> 3.11.0)
|
34
|
+
rspec-mocks (~> 3.11.0)
|
35
|
+
rspec-core (3.11.0)
|
36
|
+
rspec-support (~> 3.11.0)
|
37
|
+
rspec-expectations (3.11.0)
|
38
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
39
|
+
rspec-support (~> 3.11.0)
|
40
|
+
rspec-mocks (3.11.0)
|
41
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
42
|
+
rspec-support (~> 3.11.0)
|
43
|
+
rspec-support (3.11.0)
|
44
|
+
thor (1.2.1)
|
45
|
+
|
46
|
+
PLATFORMS
|
47
|
+
x86_64-linux
|
48
|
+
|
49
|
+
DEPENDENCIES
|
50
|
+
appraisal
|
51
|
+
rake
|
52
|
+
redis-namespace (~> 1.5, >= 1.5.2)
|
53
|
+
rspec
|
54
|
+
sidekiq!
|
55
|
+
sidekiq-limit_fetch!
|
56
|
+
|
57
|
+
BUNDLED WITH
|
58
|
+
2.3.6
|
@@ -11,7 +11,7 @@ module Sidekiq::LimitFetch::Global
|
|
11
11
|
Thread.new do
|
12
12
|
loop do
|
13
13
|
Sidekiq::LimitFetch.redis_retryable do
|
14
|
-
|
14
|
+
handle_dynamic_queues
|
15
15
|
update_heartbeat ttl
|
16
16
|
invalidate_old_processes
|
17
17
|
end
|
@@ -37,19 +37,19 @@ module Sidekiq::LimitFetch::Global
|
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
40
|
-
def
|
40
|
+
def handle_dynamic_queues
|
41
41
|
queues = Sidekiq::LimitFetch::Queues
|
42
|
-
queues.
|
42
|
+
queues.handle Sidekiq::Queue.all.map(&:name) if queues.dynamic?
|
43
43
|
end
|
44
44
|
|
45
45
|
private
|
46
46
|
|
47
47
|
def update_heartbeat(ttl)
|
48
48
|
Sidekiq.redis do |it|
|
49
|
-
it.multi do
|
50
|
-
|
51
|
-
|
52
|
-
|
49
|
+
it.multi do |pipeline|
|
50
|
+
pipeline.set heartbeat_key, true
|
51
|
+
pipeline.sadd PROCESS_SET, Selector.uuid
|
52
|
+
pipeline.expire heartbeat_key, ttl
|
53
53
|
end
|
54
54
|
end
|
55
55
|
end
|
@@ -109,6 +109,14 @@ module Sidekiq::LimitFetch::Global
|
|
109
109
|
redis {|it| it.get "#{PREFIX}:block:#@name" }
|
110
110
|
end
|
111
111
|
|
112
|
+
def clear_limits
|
113
|
+
redis do |it|
|
114
|
+
%w(block busy limit pause probed process_limit).each do |key|
|
115
|
+
it.del "#{PREFIX}:#{key}:#@name"
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
112
120
|
def increase_local_busy
|
113
121
|
@lock.synchronize { @local_busy += 1 }
|
114
122
|
end
|
@@ -4,14 +4,19 @@ module Sidekiq::LimitFetch::Queues
|
|
4
4
|
THREAD_KEY = :acquired_queues
|
5
5
|
|
6
6
|
def start(options)
|
7
|
-
@queues
|
8
|
-
@
|
7
|
+
@queues = options[:queues]
|
8
|
+
@startup_queues = options[:queues].dup
|
9
|
+
@dynamic = options[:dynamic]
|
10
|
+
|
11
|
+
@limits = options[:limits] || {}
|
12
|
+
@process_limits = options[:process_limits] || {}
|
13
|
+
@blocks = options[:blocking] || []
|
9
14
|
|
10
15
|
options[:strict] ? strict_order! : weighted_order!
|
11
16
|
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
apply_process_limit_to_queues
|
18
|
+
apply_limit_to_queues
|
19
|
+
apply_blocks_to_queues
|
15
20
|
end
|
16
21
|
|
17
22
|
def acquire
|
@@ -33,12 +38,40 @@ module Sidekiq::LimitFetch::Queues
|
|
33
38
|
@dynamic
|
34
39
|
end
|
35
40
|
|
41
|
+
def startup_queue?(queue)
|
42
|
+
@startup_queues.include?(queue)
|
43
|
+
end
|
44
|
+
|
36
45
|
def add(queues)
|
46
|
+
return unless queues
|
37
47
|
queues.each do |queue|
|
38
|
-
|
48
|
+
unless @queues.include? queue
|
49
|
+
if startup_queue?(queue)
|
50
|
+
apply_process_limit_to_queue(queue)
|
51
|
+
apply_limit_to_queue(queue)
|
52
|
+
end
|
53
|
+
|
54
|
+
@queues.push queue
|
55
|
+
end
|
39
56
|
end
|
40
57
|
end
|
41
58
|
|
59
|
+
def remove(queues)
|
60
|
+
return unless queues
|
61
|
+
queues.each do |queue|
|
62
|
+
if @queues.include? queue
|
63
|
+
clear_limits_for_queue(queue)
|
64
|
+
@queues.delete queue
|
65
|
+
Sidekiq::Queue.delete_instance(queue)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def handle(queues)
|
71
|
+
add(queues - @queues)
|
72
|
+
remove(@queues - queues)
|
73
|
+
end
|
74
|
+
|
42
75
|
def strict_order!
|
43
76
|
@queues.uniq!
|
44
77
|
def ordered_queues; @queues end
|
@@ -60,22 +93,37 @@ module Sidekiq::LimitFetch::Queues
|
|
60
93
|
|
61
94
|
private
|
62
95
|
|
63
|
-
def
|
64
|
-
|
96
|
+
def apply_process_limit_to_queues
|
97
|
+
@queues.uniq.each do |queue_name|
|
98
|
+
apply_process_limit_to_queue(queue_name)
|
99
|
+
end
|
65
100
|
end
|
66
101
|
|
67
|
-
def
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
102
|
+
def apply_process_limit_to_queue(queue_name)
|
103
|
+
queue = Sidekiq::Queue[queue_name]
|
104
|
+
queue.process_limit = @process_limits[queue_name.to_s] || @process_limits[queue_name.to_sym]
|
105
|
+
end
|
106
|
+
|
107
|
+
def apply_limit_to_queues
|
108
|
+
@queues.uniq.each do |queue_name|
|
109
|
+
apply_limit_to_queue(queue_name)
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
def apply_limit_to_queue(queue_name)
|
114
|
+
queue = Sidekiq::Queue[queue_name]
|
115
|
+
|
116
|
+
unless queue.limit_changed?
|
117
|
+
queue.limit = @limits[queue_name.to_s] || @limits[queue_name.to_sym]
|
72
118
|
end
|
73
119
|
end
|
74
120
|
|
75
|
-
def
|
76
|
-
|
121
|
+
def apply_blocks_to_queues
|
122
|
+
@queues.uniq.each do |queue_name|
|
123
|
+
Sidekiq::Queue[queue_name].unblock
|
124
|
+
end
|
77
125
|
|
78
|
-
blocks.to_a.each do |it|
|
126
|
+
@blocks.to_a.each do |it|
|
79
127
|
if it.is_a? Array
|
80
128
|
it.each {|name| Sidekiq::Queue[name].block_except it }
|
81
129
|
else
|
@@ -84,6 +132,15 @@ module Sidekiq::LimitFetch::Queues
|
|
84
132
|
end
|
85
133
|
end
|
86
134
|
|
135
|
+
def clear_limits_for_queue(queue_name)
|
136
|
+
queue = Sidekiq::Queue[queue_name]
|
137
|
+
queue.clear_limits
|
138
|
+
end
|
139
|
+
|
140
|
+
def selector
|
141
|
+
Sidekiq::LimitFetch::Global::Selector
|
142
|
+
end
|
143
|
+
|
87
144
|
def save(queues)
|
88
145
|
Thread.current[THREAD_KEY] = queues
|
89
146
|
end
|
@@ -93,8 +150,4 @@ module Sidekiq::LimitFetch::Queues
|
|
93
150
|
ensure
|
94
151
|
Thread.current[THREAD_KEY] = nil
|
95
152
|
end
|
96
|
-
|
97
|
-
def each_queue
|
98
|
-
@queues.uniq.each {|it| yield Sidekiq::Queue[it] }
|
99
|
-
end
|
100
153
|
end
|
data/lib/sidekiq/limit_fetch.rb
CHANGED
@@ -26,8 +26,14 @@ module Sidekiq::LimitFetch
|
|
26
26
|
UnitOfWork.new(queue, job) if job
|
27
27
|
end
|
28
28
|
|
29
|
+
# Backwards compatibility for sidekiq v6.1.0
|
30
|
+
# @see https://github.com/mperham/sidekiq/pull/4602
|
29
31
|
def bulk_requeue(*args)
|
30
|
-
Sidekiq::BasicFetch.bulk_requeue
|
32
|
+
if Sidekiq::BasicFetch.respond_to?(:bulk_requeue) # < 6.1.0
|
33
|
+
Sidekiq::BasicFetch.bulk_requeue(*args)
|
34
|
+
else # 6.1.0+
|
35
|
+
Sidekiq::BasicFetch.new(Sidekiq.options).bulk_requeue(*args)
|
36
|
+
end
|
31
37
|
end
|
32
38
|
|
33
39
|
def redis_retryable
|
@@ -46,7 +52,7 @@ module Sidekiq::LimitFetch
|
|
46
52
|
sleep TIMEOUT # there are no queues to handle, so lets sleep
|
47
53
|
[] # and return nothing
|
48
54
|
else
|
49
|
-
Sidekiq.redis { |it| it.brpop *queues, TIMEOUT }
|
55
|
+
redis_retryable { Sidekiq.redis { |it| it.brpop *queues, TIMEOUT } }
|
50
56
|
end
|
51
57
|
end
|
52
58
|
end
|
data/sidekiq-limit_fetch.gemspec
CHANGED
@@ -1,22 +1,21 @@
|
|
1
1
|
Gem::Specification.new do |gem|
|
2
2
|
gem.name = 'sidekiq-limit_fetch'
|
3
|
-
gem.version = '
|
3
|
+
gem.version = '4.0.0'
|
4
4
|
gem.license = 'MIT'
|
5
|
-
gem.authors = 'brainopia'
|
6
|
-
gem.email = '
|
5
|
+
gem.authors = ['Dean Perry', 'brainopia']
|
6
|
+
gem.email = 'dean@deanpcmad.com'
|
7
7
|
gem.summary = 'Sidekiq strategy to support queue limits'
|
8
|
-
gem.homepage = 'https://github.com/
|
9
|
-
gem.description =
|
10
|
-
Sidekiq strategy to restrict number of workers
|
11
|
-
which are able to run specified queues simultaneously.
|
12
|
-
DESCRIPTION
|
8
|
+
gem.homepage = 'https://github.com/deanpcmad/sidekiq-limit_fetch'
|
9
|
+
gem.description = "Sidekiq strategy to restrict number of workers which are able to run specified queues simultaneously."
|
13
10
|
|
14
11
|
gem.files = `git ls-files`.split($/)
|
15
12
|
gem.test_files = gem.files.grep %r{^spec/}
|
16
13
|
gem.require_paths = %w(lib)
|
17
14
|
|
18
15
|
gem.add_dependency 'sidekiq', '>= 4'
|
16
|
+
gem.add_dependency 'redis', '>= 4.6.0'
|
19
17
|
gem.add_development_dependency 'redis-namespace', '~> 1.5', '>= 1.5.2'
|
18
|
+
gem.add_development_dependency 'appraisal'
|
20
19
|
gem.add_development_dependency 'rspec'
|
21
20
|
gem.add_development_dependency 'rake'
|
22
21
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -11,13 +11,13 @@ RSpec.configure do |config|
|
|
11
11
|
Sidekiq::Queue.reset_instances!
|
12
12
|
Sidekiq.redis do |it|
|
13
13
|
clean_redis = ->(queue) do
|
14
|
-
it.pipelined do
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
14
|
+
it.pipelined do |pipeline|
|
15
|
+
pipeline.del "limit_fetch:limit:#{queue}"
|
16
|
+
pipeline.del "limit_fetch:process_limit:#{queue}"
|
17
|
+
pipeline.del "limit_fetch:busy:#{queue}"
|
18
|
+
pipeline.del "limit_fetch:probed:#{queue}"
|
19
|
+
pipeline.del "limit_fetch:pause:#{queue}"
|
20
|
+
pipeline.del "limit_fetch:block:#{queue}"
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sidekiq-limit_fetch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 4.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
+
- Dean Perry
|
7
8
|
- brainopia
|
8
|
-
autorequire:
|
9
|
+
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2022-03-26 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: sidekiq
|
@@ -17,13 +18,27 @@ dependencies:
|
|
17
18
|
- - ">="
|
18
19
|
- !ruby/object:Gem::Version
|
19
20
|
version: '4'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
20
23
|
version_requirements: !ruby/object:Gem::Requirement
|
21
24
|
requirements:
|
22
25
|
- - ">="
|
23
26
|
- !ruby/object:Gem::Version
|
24
27
|
version: '4'
|
25
|
-
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: redis
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: 4.6.0
|
26
35
|
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: 4.6.0
|
27
42
|
- !ruby/object:Gem::Dependency
|
28
43
|
name: redis-namespace
|
29
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -34,6 +49,8 @@ dependencies:
|
|
34
49
|
- - ">="
|
35
50
|
- !ruby/object:Gem::Version
|
36
51
|
version: 1.5.2
|
52
|
+
type: :development
|
53
|
+
prerelease: false
|
37
54
|
version_requirements: !ruby/object:Gem::Requirement
|
38
55
|
requirements:
|
39
56
|
- - "~>"
|
@@ -42,8 +59,20 @@ dependencies:
|
|
42
59
|
- - ">="
|
43
60
|
- !ruby/object:Gem::Version
|
44
61
|
version: 1.5.2
|
45
|
-
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: appraisal
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
46
69
|
type: :development
|
70
|
+
prerelease: false
|
71
|
+
version_requirements: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
47
76
|
- !ruby/object:Gem::Dependency
|
48
77
|
name: rspec
|
49
78
|
requirement: !ruby/object:Gem::Requirement
|
@@ -51,13 +80,13 @@ dependencies:
|
|
51
80
|
- - ">="
|
52
81
|
- !ruby/object:Gem::Version
|
53
82
|
version: '0'
|
83
|
+
type: :development
|
84
|
+
prerelease: false
|
54
85
|
version_requirements: !ruby/object:Gem::Requirement
|
55
86
|
requirements:
|
56
87
|
- - ">="
|
57
88
|
- !ruby/object:Gem::Version
|
58
89
|
version: '0'
|
59
|
-
prerelease: false
|
60
|
-
type: :development
|
61
90
|
- !ruby/object:Gem::Dependency
|
62
91
|
name: rake
|
63
92
|
requirement: !ruby/object:Gem::Requirement
|
@@ -65,24 +94,24 @@ dependencies:
|
|
65
94
|
- - ">="
|
66
95
|
- !ruby/object:Gem::Version
|
67
96
|
version: '0'
|
97
|
+
type: :development
|
98
|
+
prerelease: false
|
68
99
|
version_requirements: !ruby/object:Gem::Requirement
|
69
100
|
requirements:
|
70
101
|
- - ">="
|
71
102
|
- !ruby/object:Gem::Version
|
72
103
|
version: '0'
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
Sidekiq strategy to restrict number of workers
|
77
|
-
which are able to run specified queues simultaneously.
|
78
|
-
email: brainopia@evilmartians.com
|
104
|
+
description: Sidekiq strategy to restrict number of workers which are able to run
|
105
|
+
specified queues simultaneously.
|
106
|
+
email: dean@deanpcmad.com
|
79
107
|
executables: []
|
80
108
|
extensions: []
|
81
109
|
extra_rdoc_files: []
|
82
110
|
files:
|
111
|
+
- ".github/workflows/ci.yml"
|
83
112
|
- ".gitignore"
|
84
113
|
- ".rspec"
|
85
|
-
-
|
114
|
+
- Appraisals
|
86
115
|
- Gemfile
|
87
116
|
- LICENSE.txt
|
88
117
|
- README.md
|
@@ -100,6 +129,24 @@ files:
|
|
100
129
|
- demo/config/boot.rb
|
101
130
|
- demo/config/environment.rb
|
102
131
|
- demo/config/environments/development.rb
|
132
|
+
- gemfiles/sidekiq_5.0.gemfile
|
133
|
+
- gemfiles/sidekiq_5.0.gemfile.lock
|
134
|
+
- gemfiles/sidekiq_5.1.gemfile
|
135
|
+
- gemfiles/sidekiq_5.1.gemfile.lock
|
136
|
+
- gemfiles/sidekiq_5.2.gemfile
|
137
|
+
- gemfiles/sidekiq_5.2.gemfile.lock
|
138
|
+
- gemfiles/sidekiq_6.0.gemfile
|
139
|
+
- gemfiles/sidekiq_6.0.gemfile.lock
|
140
|
+
- gemfiles/sidekiq_6.1.gemfile
|
141
|
+
- gemfiles/sidekiq_6.1.gemfile.lock
|
142
|
+
- gemfiles/sidekiq_6.2.gemfile
|
143
|
+
- gemfiles/sidekiq_6.2.gemfile.lock
|
144
|
+
- gemfiles/sidekiq_6.3.gemfile
|
145
|
+
- gemfiles/sidekiq_6.3.gemfile.lock
|
146
|
+
- gemfiles/sidekiq_6.4.gemfile
|
147
|
+
- gemfiles/sidekiq_6.4.gemfile.lock
|
148
|
+
- gemfiles/sidekiq_master.gemfile
|
149
|
+
- gemfiles/sidekiq_master.gemfile.lock
|
103
150
|
- lib/sidekiq-limit_fetch.rb
|
104
151
|
- lib/sidekiq/extensions/manager.rb
|
105
152
|
- lib/sidekiq/extensions/queue.rb
|
@@ -117,11 +164,11 @@ files:
|
|
117
164
|
- spec/sidekiq/limit_fetch/semaphore_spec.rb
|
118
165
|
- spec/sidekiq/limit_fetch_spec.rb
|
119
166
|
- spec/spec_helper.rb
|
120
|
-
homepage: https://github.com/
|
167
|
+
homepage: https://github.com/deanpcmad/sidekiq-limit_fetch
|
121
168
|
licenses:
|
122
169
|
- MIT
|
123
170
|
metadata: {}
|
124
|
-
post_install_message:
|
171
|
+
post_install_message:
|
125
172
|
rdoc_options: []
|
126
173
|
require_paths:
|
127
174
|
- lib
|
@@ -136,9 +183,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
136
183
|
- !ruby/object:Gem::Version
|
137
184
|
version: '0'
|
138
185
|
requirements: []
|
139
|
-
|
140
|
-
|
141
|
-
signing_key:
|
186
|
+
rubygems_version: 3.1.6
|
187
|
+
signing_key:
|
142
188
|
specification_version: 4
|
143
189
|
summary: Sidekiq strategy to support queue limits
|
144
190
|
test_files:
|