sidekiq-rate-limiter 0.1.2 → 0.2.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/test.yml +48 -0
- data/.ruby-version +1 -0
- data/CHANGELOG.md +19 -0
- data/README.md +24 -23
- data/gemfiles/{sidekiq_2.gemfile → sidekiq_5.gemfile} +1 -1
- data/gemfiles/{sidekiq_3.gemfile → sidekiq_6.0.gemfile} +1 -1
- data/gemfiles/sidekiq_6.1.gemfile +5 -0
- data/gemfiles/sidekiq_6.x.gemfile +5 -0
- data/lib/sidekiq-rate-limiter/fetch.rb +2 -3
- data/lib/sidekiq-rate-limiter/server.rb +8 -1
- data/lib/sidekiq-rate-limiter/version.rb +1 -1
- data/sidekiq-rate-limiter.gemspec +3 -3
- data/spec/sidekiq-rate-limiter/fetch_spec.rb +14 -2
- data/spec/sidekiq-rate-limiter/server_spec.rb +10 -2
- data/spec/spec_helper.rb +19 -41
- metadata +38 -19
- data/.simplecov +0 -6
- data/.travis.yml +0 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eaf0f64591b7ddcbba0d15b889fdfbe2b639cce8b112a8be3e92ec9cac2dc07e
|
4
|
+
data.tar.gz: fbfadc77f1bf676221b3e8c268a4ac60d4a19bc55e3a22a74c2084b9e62c3ee2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 00bf480916d2764f62e2e96b377573bcfe266c05c95d8a395f5b1293c84d3122f11355fa311c9af019fc50b07ae4228c51e06e4ded5dcb571c040b158d5fb6b3
|
7
|
+
data.tar.gz: 2907155a2a62408dcb3e1e928669588bd269057215de35cbe41782ee130e514823ff9fdc618f6b132484151bf8ca652360b213c0eaf398fb20b0ff815e235570
|
@@ -0,0 +1,48 @@
|
|
1
|
+
name: Test
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ main ]
|
6
|
+
pull_request:
|
7
|
+
|
8
|
+
jobs:
|
9
|
+
test:
|
10
|
+
runs-on: ubuntu-latest
|
11
|
+
|
12
|
+
strategy:
|
13
|
+
matrix:
|
14
|
+
ruby-version: ['3.1', '2.7']
|
15
|
+
sidekiq-version: ['4', '5', '6.0', '6.1', '6.x']
|
16
|
+
|
17
|
+
steps:
|
18
|
+
- uses: actions/checkout@v3
|
19
|
+
|
20
|
+
- name: Set up Ruby ${{ matrix.ruby-version }}
|
21
|
+
uses: ruby/setup-ruby@359bebbc29cbe6c87da6bc9ea3bc930432750108
|
22
|
+
with:
|
23
|
+
ruby-version: ${{ matrix.ruby-version }}
|
24
|
+
|
25
|
+
- name: Install dependencies
|
26
|
+
run: bundle install --gemfile=gemfiles/sidekiq_${{ matrix.sidekiq-version }}.gemfile
|
27
|
+
|
28
|
+
- name: Start Redis
|
29
|
+
uses: supercharge/redis-github-action@1.5.0
|
30
|
+
|
31
|
+
- name: Run tests
|
32
|
+
run: bundle exec --gemfile=gemfiles/sidekiq_${{ matrix.sidekiq-version }}.gemfile rspec
|
33
|
+
|
34
|
+
- name: Coveralls
|
35
|
+
uses: coverallsapp/github-action@v1
|
36
|
+
with:
|
37
|
+
flag-name: run-${{ join(matrix.*, '-') }}
|
38
|
+
parallel: true
|
39
|
+
|
40
|
+
finish:
|
41
|
+
needs: test
|
42
|
+
if: ${{ always() }}
|
43
|
+
runs-on: ubuntu-latest
|
44
|
+
steps:
|
45
|
+
- name: Coveralls Finished
|
46
|
+
uses: coverallsapp/github-action@v1
|
47
|
+
with:
|
48
|
+
parallel-finished: true
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.7.6
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,22 @@
|
|
1
|
+
## 0.2.0 (Mar 1, 2023)
|
2
|
+
|
3
|
+
* Upstream fix for sidekiq 6.5.0 [#43, thanks to 5minpause]
|
4
|
+
* Add support for new Sidekiq's configuration model [#42, thanks to anero]
|
5
|
+
* gemspec: Drop defunct property rubyforge_project [#37, thanks to olleolleolle]
|
6
|
+
|
7
|
+
## 0.1.3 (Oct 15, 2019)
|
8
|
+
|
9
|
+
* Fix errors when using with redis-rb > 4.1.0 [#30, #31]
|
10
|
+
|
11
|
+
## 0.1.2 (Jul 5, 2018)
|
12
|
+
|
13
|
+
* Add (provisional) Sidekiq 5 support
|
14
|
+
|
15
|
+
## 0.1.1 (Feb 15, 2016)
|
16
|
+
|
17
|
+
* Add Sidekiq 4 support
|
18
|
+
* Drop Ruby 1.9 support
|
19
|
+
|
1
20
|
## 0.1.0 (May 30, 2014)
|
2
21
|
|
3
22
|
* Support callables for all configuration options
|
data/README.md
CHANGED
@@ -2,18 +2,17 @@ sidekiq-rate-limiter
|
|
2
2
|
====================
|
3
3
|
|
4
4
|
[](https://rubygems.org/gems/sidekiq-rate-limiter)
|
5
|
-
[](https://github.com/enova/sidekiq-rate-limiter/actions/workflows/test.yml)
|
6
6
|
[](https://coveralls.io/github/enova/sidekiq-rate-limiter?branch=master)
|
7
|
-
[](https://gemnasium.com/enova/sidekiq-rate-limiter)
|
8
7
|
|
9
8
|
Redis-backed, per-worker rate limits for job processing.
|
10
9
|
|
11
10
|
## Compatibility
|
12
11
|
|
13
|
-
sidekiq-rate-limiter is actively tested against MRI versions 2.
|
12
|
+
sidekiq-rate-limiter is actively tested against MRI versions 2.7 and 3.1.
|
14
13
|
|
15
14
|
sidekiq-rate-limiter works by using a custom fetch class, the class responsible
|
16
|
-
for pulling work from the queue stored in
|
15
|
+
for pulling work from the queue stored in Redis. Consequently you'll want to be
|
17
16
|
careful about using other gems that use a same strategy, [sidekiq-priority](https://github.com/socialpandas/sidekiq-priority)
|
18
17
|
being one example.
|
19
18
|
|
@@ -32,7 +31,7 @@ class MyWorker
|
|
32
31
|
end
|
33
32
|
```
|
34
33
|
|
35
|
-
Then you wouldn't need to change anything.
|
34
|
+
Then you wouldn't need to change anything.
|
36
35
|
|
37
36
|
## Installation
|
38
37
|
|
@@ -60,12 +59,14 @@ require 'sidekiq-rate-limiter/server'
|
|
60
59
|
|
61
60
|
Or, if you prefer, amend your Gemfile like so:
|
62
61
|
|
63
|
-
|
62
|
+
```ruby
|
63
|
+
gem 'sidekiq-rate-limiter', require: 'sidekiq-rate-limiter/server'
|
64
|
+
```
|
64
65
|
|
65
|
-
By default the limiter uses the name
|
66
|
-
constant
|
67
|
-
change this. Alternatively, you can include a
|
68
|
-
hash included in sidekiq_options
|
66
|
+
By default the limiter uses the name `sidekiq-rate-limiter`. You can define the
|
67
|
+
constant `Sidekiq::RateLimiter::DEFAULT_LIMIT_NAME` prior to requiring to
|
68
|
+
change this. Alternatively, you can include a `name` parameter in the configuration
|
69
|
+
hash included in `sidekiq_options`
|
69
70
|
|
70
71
|
For example, the following:
|
71
72
|
|
@@ -73,11 +74,11 @@ For example, the following:
|
|
73
74
|
class Job
|
74
75
|
include Sidekiq::Worker
|
75
76
|
|
76
|
-
sidekiq_options :
|
77
|
-
:
|
78
|
-
:
|
79
|
-
:
|
80
|
-
:
|
77
|
+
sidekiq_options queue: 'some_silly_queue',
|
78
|
+
rate: {
|
79
|
+
name: 'my_super_awesome_rate_limit',
|
80
|
+
limit: 50,
|
81
|
+
period: 3600, ## An hour
|
81
82
|
}
|
82
83
|
|
83
84
|
def perform(*args)
|
@@ -86,7 +87,7 @@ For example, the following:
|
|
86
87
|
```
|
87
88
|
|
88
89
|
The configuration above would result in any jobs beyond the first 50 in a one
|
89
|
-
hour period being delayed. The server will continue to fetch items from
|
90
|
+
hour period being delayed. The server will continue to fetch items from Redis, &
|
90
91
|
will place any items that are beyond the threshold at the back of their queue.
|
91
92
|
|
92
93
|
### Dynamic Configuration
|
@@ -99,11 +100,11 @@ The `Proc` may receive as its arguments the same values that will be passed to `
|
|
99
100
|
class Job
|
100
101
|
include Sidekiq::Worker
|
101
102
|
|
102
|
-
sidekiq_options :
|
103
|
-
:
|
104
|
-
:
|
105
|
-
:
|
106
|
-
:
|
103
|
+
sidekiq_options queue: "my_queue",1
|
104
|
+
rate: {
|
105
|
+
name: ->(user_id, rate_limit) { user_id },
|
106
|
+
limit: ->(user_id, rate_limit) { rate_limit },
|
107
|
+
period: ->{ Date.today.monday? ? 2.hours : 4.hours }, # can ignore arguments
|
107
108
|
}
|
108
109
|
|
109
110
|
def perform(user_id, rate_limit)
|
@@ -120,9 +121,9 @@ limited multiple times are counted as 'processed' each time, so the stats balloo
|
|
120
121
|
|
121
122
|
## TODO
|
122
123
|
|
123
|
-
* While it subclasses instead of monkey patching, setting Sidekiq.options[:fetch]
|
124
|
+
* While it subclasses instead of monkey patching, setting `Sidekiq.options[:fetch]`
|
124
125
|
is still asking for interaction issues. It would be better for this to be directly
|
125
|
-
in
|
126
|
+
in Sidekiq or to use some other means to accomplish this goal.
|
126
127
|
|
127
128
|
## Contributing
|
128
129
|
|
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'sidekiq'
|
2
|
-
require 'celluloid' if Sidekiq::VERSION < "4"
|
3
2
|
require 'sidekiq/fetch'
|
4
3
|
require 'redis_rate_limiter'
|
5
4
|
|
@@ -27,7 +26,7 @@ module Sidekiq::RateLimiter
|
|
27
26
|
|
28
27
|
options = {
|
29
28
|
:limit => (limit.respond_to?(:call) ? limit.call(*args) : limit).to_i,
|
30
|
-
:interval => (interval.respond_to?(:call) ? interval.call(*args) : interval).
|
29
|
+
:interval => (interval.respond_to?(:call) ? interval.call(*args) : interval).to_i,
|
31
30
|
:name => (name.respond_to?(:call) ? name.call(*args) : name).to_s,
|
32
31
|
}
|
33
32
|
|
@@ -90,7 +89,7 @@ module Sidekiq::RateLimiter
|
|
90
89
|
worker_class = @message['class']
|
91
90
|
options = Object.const_get(worker_class).get_sidekiq_options rescue {}
|
92
91
|
server_rate = options['rate'] || options['throttle'] || {}
|
93
|
-
@server_rate = server_rate.
|
92
|
+
@server_rate = server_rate.map { |k, v| [k.to_s, v] }.to_h
|
94
93
|
end
|
95
94
|
end
|
96
95
|
|
@@ -2,5 +2,12 @@ require 'sidekiq-rate-limiter/version'
|
|
2
2
|
require 'sidekiq-rate-limiter/fetch'
|
3
3
|
|
4
4
|
Sidekiq.configure_server do |config|
|
5
|
-
Sidekiq.
|
5
|
+
# Backwards compatibility for Sidekiq < 6.1.0 (see https://github.com/mperham/sidekiq/pull/4602 for details)
|
6
|
+
if (Sidekiq::BasicFetch.respond_to?(:bulk_requeue))
|
7
|
+
Sidekiq.options[:fetch] = Sidekiq::RateLimiter::Fetch
|
8
|
+
elsif (Sidekiq::VERSION < '6.5.0') # Sidekiq config was redesigned in https://github.com/mperham/sidekiq/pull/5340
|
9
|
+
Sidekiq.options[:fetch] = Sidekiq::RateLimiter::Fetch.new(Sidekiq.options)
|
10
|
+
else
|
11
|
+
Sidekiq[:fetch] = Sidekiq::RateLimiter::Fetch.new(Sidekiq)
|
12
|
+
end
|
6
13
|
end
|
@@ -13,7 +13,6 @@ Gem::Specification.new do |s|
|
|
13
13
|
s.homepage = "https://github.com/enova/sidekiq-rate-limiter"
|
14
14
|
s.summary = %q{Redis-backed, per-worker rate limits for job processing}
|
15
15
|
s.description = %q{Redis-backed, per-worker rate limits for job processing}
|
16
|
-
s.rubyforge_project = "nowarning"
|
17
16
|
|
18
17
|
s.files = `git ls-files`.split("\n")
|
19
18
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
@@ -24,8 +23,9 @@ Gem::Specification.new do |s|
|
|
24
23
|
s.add_development_dependency "pry-byebug"
|
25
24
|
s.add_development_dependency "rake"
|
26
25
|
s.add_development_dependency "rspec", '~> 3.4'
|
27
|
-
s.add_development_dependency "
|
26
|
+
s.add_development_dependency "simplecov"
|
27
|
+
s.add_development_dependency "simplecov-lcov", '~> 0.8.0'
|
28
28
|
|
29
|
-
s.add_dependency "sidekiq", ">=
|
29
|
+
s.add_dependency "sidekiq", ">= 4.0", "< 7.0"
|
30
30
|
s.add_dependency "redis_rate_limiter"
|
31
31
|
end
|
@@ -27,7 +27,14 @@ RSpec.describe Sidekiq::RateLimiter::Fetch do
|
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
|
-
let(:options)
|
30
|
+
let(:options) do
|
31
|
+
if Sidekiq::VERSION =~ /^(4|5|6\.[0-4])/
|
32
|
+
{ queues: [queue, another_queue, another_queue] }
|
33
|
+
else
|
34
|
+
Sidekiq.tap { |s| s[:queues] = [queue, another_queue, another_queue] }
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
31
38
|
let(:queue) { 'basic' }
|
32
39
|
let(:another_queue) { 'some_other_queue' }
|
33
40
|
let(:args) { ['I am some args'] }
|
@@ -46,8 +53,13 @@ RSpec.describe Sidekiq::RateLimiter::Fetch do
|
|
46
53
|
else
|
47
54
|
Sidekiq::Fetcher::TIMEOUT
|
48
55
|
end
|
56
|
+
|
57
|
+
if Sidekiq::VERSION.start_with?('6.5.')
|
58
|
+
_timeout = { timeout: timeout}
|
59
|
+
timeout = _timeout
|
60
|
+
end
|
49
61
|
|
50
|
-
fetch = described_class.new options.merge(:strict => true)
|
62
|
+
fetch = described_class.new options.merge!(:strict => true)
|
51
63
|
expect(fetch.queues_cmd).to eql(["queue:#{queue}", "queue:#{another_queue}", timeout])
|
52
64
|
end
|
53
65
|
|
@@ -8,13 +8,21 @@ RSpec.describe Sidekiq::RateLimiter, 'server configuration' do
|
|
8
8
|
|
9
9
|
it 'should set Sidekiq.options[:fetch] as desired' do
|
10
10
|
Sidekiq.configure_server do |config|
|
11
|
-
|
11
|
+
if Sidekiq::VERSION =~ /^(4|5|6.0)/
|
12
|
+
expect(Sidekiq.options[:fetch]).to eql(Sidekiq::RateLimiter::Fetch)
|
13
|
+
else
|
14
|
+
expect(Sidekiq.options[:fetch]).to be_a(Sidekiq::RateLimiter::Fetch)
|
15
|
+
end
|
12
16
|
end
|
13
17
|
end
|
14
18
|
|
15
19
|
it 'should inherit from Sidekiq::BasicFetch' do
|
16
20
|
Sidekiq.configure_server do |config|
|
17
|
-
|
21
|
+
if Sidekiq::VERSION =~ /^(4|5|6.0)/
|
22
|
+
expect(Sidekiq.options[:fetch]).to be < Sidekiq::BasicFetch
|
23
|
+
else
|
24
|
+
expect(Sidekiq.options[:fetch].class.ancestors[1]).to be(Sidekiq::BasicFetch)
|
25
|
+
end
|
18
26
|
end
|
19
27
|
end
|
20
28
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,35 +1,11 @@
|
|
1
1
|
require 'sidekiq'
|
2
2
|
require 'sidekiq/testing'
|
3
|
-
|
4
|
-
## Confirming presence of redis server executable
|
5
|
-
abort "## `redis-server` not in path" if %x(which redis-server).empty?
|
6
|
-
redis_dir = "#{File.dirname(__FILE__)}/support/redis"
|
7
|
-
|
8
|
-
## Redis configuration
|
9
|
-
REDIS_CONFIG = <<-CONF
|
10
|
-
daemonize yes
|
11
|
-
pidfile #{redis_dir}/test.pid
|
12
|
-
port 6380
|
13
|
-
timeout 300
|
14
|
-
save 900 1
|
15
|
-
save 300 10
|
16
|
-
save 60 10000
|
17
|
-
dbfilename test.rdb
|
18
|
-
dir #{redis_dir}
|
19
|
-
loglevel warning
|
20
|
-
logfile stdout
|
21
|
-
databases 1
|
22
|
-
CONF
|
23
|
-
|
24
|
-
%x(echo '#{REDIS_CONFIG}' > #{redis_dir}/test.conf)
|
25
|
-
redis_command = "redis-server #{redis_dir}/test.conf"
|
26
|
-
%x[ #{redis_command} ]
|
27
|
-
##
|
3
|
+
require 'pry-byebug'
|
28
4
|
|
29
5
|
## Configuring sidekiq
|
30
6
|
options = {
|
31
7
|
logger: nil,
|
32
|
-
redis: { :
|
8
|
+
redis: { url: ENV.fetch('REDIS_URL', 'redis://localhost:6379/0') }
|
33
9
|
}
|
34
10
|
|
35
11
|
Sidekiq.configure_client do |config|
|
@@ -43,12 +19,27 @@ Sidekiq.configure_server do |config|
|
|
43
19
|
config.send("#{option}=", value)
|
44
20
|
end
|
45
21
|
end
|
46
|
-
##
|
47
22
|
|
23
|
+
|
24
|
+
## Code Coverage
|
48
25
|
require 'simplecov'
|
49
26
|
|
27
|
+
SimpleCov.start do
|
28
|
+
if ENV['CI']
|
29
|
+
require 'simplecov-lcov'
|
30
|
+
|
31
|
+
SimpleCov::Formatter::LcovFormatter.config do |c|
|
32
|
+
c.report_with_single_file = true
|
33
|
+
c.single_report_path = 'coverage/lcov.info'
|
34
|
+
end
|
35
|
+
|
36
|
+
formatter SimpleCov::Formatter::LcovFormatter
|
37
|
+
end
|
38
|
+
|
39
|
+
add_filter %w[version.rb spec/]
|
40
|
+
end
|
41
|
+
|
50
42
|
require File.expand_path("../../lib/sidekiq-rate-limiter", __FILE__)
|
51
|
-
##
|
52
43
|
|
53
44
|
## Hook to set Sidekiq::Testing mode using rspec tags
|
54
45
|
RSpec.configure do |config|
|
@@ -76,18 +67,5 @@ RSpec.configure do |config|
|
|
76
67
|
elsif Sidekiq::Testing.fake?
|
77
68
|
Sidekiq::Worker.clear_all
|
78
69
|
end
|
79
|
-
|
80
|
-
end
|
81
|
-
|
82
|
-
config.after(:all) do
|
83
|
-
## Stopping Redis
|
84
|
-
ps = %x(ps -A -o pid,command | grep '#{redis_command}' | grep -v grep).split($/)
|
85
|
-
pids = ps.map { |p| p.split(/\s+/).reject(&:empty?).first.to_i }
|
86
|
-
pids.each { |pid| Process.kill("TERM", pid) }
|
87
|
-
|
88
|
-
## Cleaning up
|
89
|
-
sleep 0.1
|
90
|
-
%x(rm -rf #{redis_dir}/*)
|
91
70
|
end
|
92
71
|
end
|
93
|
-
##
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sidekiq-rate-limiter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Docady
|
8
8
|
- Blake Thomas
|
9
9
|
- Enova
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2023-03-01 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: pry
|
@@ -69,39 +69,53 @@ dependencies:
|
|
69
69
|
- !ruby/object:Gem::Version
|
70
70
|
version: '3.4'
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
|
-
name:
|
72
|
+
name: simplecov
|
73
|
+
requirement: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
type: :development
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '0'
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: simplecov-lcov
|
73
87
|
requirement: !ruby/object:Gem::Requirement
|
74
88
|
requirements:
|
75
89
|
- - "~>"
|
76
90
|
- !ruby/object:Gem::Version
|
77
|
-
version:
|
91
|
+
version: 0.8.0
|
78
92
|
type: :development
|
79
93
|
prerelease: false
|
80
94
|
version_requirements: !ruby/object:Gem::Requirement
|
81
95
|
requirements:
|
82
96
|
- - "~>"
|
83
97
|
- !ruby/object:Gem::Version
|
84
|
-
version:
|
98
|
+
version: 0.8.0
|
85
99
|
- !ruby/object:Gem::Dependency
|
86
100
|
name: sidekiq
|
87
101
|
requirement: !ruby/object:Gem::Requirement
|
88
102
|
requirements:
|
89
103
|
- - ">="
|
90
104
|
- !ruby/object:Gem::Version
|
91
|
-
version: '
|
105
|
+
version: '4.0'
|
92
106
|
- - "<"
|
93
107
|
- !ruby/object:Gem::Version
|
94
|
-
version: '
|
108
|
+
version: '7.0'
|
95
109
|
type: :runtime
|
96
110
|
prerelease: false
|
97
111
|
version_requirements: !ruby/object:Gem::Requirement
|
98
112
|
requirements:
|
99
113
|
- - ">="
|
100
114
|
- !ruby/object:Gem::Version
|
101
|
-
version: '
|
115
|
+
version: '4.0'
|
102
116
|
- - "<"
|
103
117
|
- !ruby/object:Gem::Version
|
104
|
-
version: '
|
118
|
+
version: '7.0'
|
105
119
|
- !ruby/object:Gem::Dependency
|
106
120
|
name: redis_rate_limiter
|
107
121
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,18 +137,20 @@ executables: []
|
|
123
137
|
extensions: []
|
124
138
|
extra_rdoc_files: []
|
125
139
|
files:
|
140
|
+
- ".github/workflows/test.yml"
|
126
141
|
- ".gitignore"
|
127
142
|
- ".rspec"
|
128
|
-
- ".
|
129
|
-
- ".travis.yml"
|
143
|
+
- ".ruby-version"
|
130
144
|
- CHANGELOG.md
|
131
145
|
- Gemfile
|
132
146
|
- LICENSE
|
133
147
|
- README.md
|
134
148
|
- Rakefile
|
135
|
-
- gemfiles/sidekiq_2.gemfile
|
136
|
-
- gemfiles/sidekiq_3.gemfile
|
137
149
|
- gemfiles/sidekiq_4.gemfile
|
150
|
+
- gemfiles/sidekiq_5.gemfile
|
151
|
+
- gemfiles/sidekiq_6.0.gemfile
|
152
|
+
- gemfiles/sidekiq_6.1.gemfile
|
153
|
+
- gemfiles/sidekiq_6.x.gemfile
|
138
154
|
- lib/sidekiq-rate-limiter.rb
|
139
155
|
- lib/sidekiq-rate-limiter/fetch.rb
|
140
156
|
- lib/sidekiq-rate-limiter/server.rb
|
@@ -148,7 +164,7 @@ homepage: https://github.com/enova/sidekiq-rate-limiter
|
|
148
164
|
licenses:
|
149
165
|
- MIT
|
150
166
|
metadata: {}
|
151
|
-
post_install_message:
|
167
|
+
post_install_message:
|
152
168
|
rdoc_options: []
|
153
169
|
require_paths:
|
154
170
|
- lib
|
@@ -163,9 +179,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
163
179
|
- !ruby/object:Gem::Version
|
164
180
|
version: '0'
|
165
181
|
requirements: []
|
166
|
-
|
167
|
-
|
168
|
-
signing_key:
|
182
|
+
rubygems_version: 3.1.6
|
183
|
+
signing_key:
|
169
184
|
specification_version: 4
|
170
185
|
summary: Redis-backed, per-worker rate limits for job processing
|
171
|
-
test_files:
|
186
|
+
test_files:
|
187
|
+
- spec/sidekiq-rate-limiter/fetch_spec.rb
|
188
|
+
- spec/sidekiq-rate-limiter/server_spec.rb
|
189
|
+
- spec/spec_helper.rb
|
190
|
+
- spec/support/redis/.keep
|
data/.simplecov
DELETED
data/.travis.yml
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
cache: bundler
|
3
|
-
sudo: false
|
4
|
-
rvm:
|
5
|
-
- 2.3.0
|
6
|
-
- 2.2.4
|
7
|
-
- 2.1.8
|
8
|
-
|
9
|
-
gemfile:
|
10
|
-
- 'gemfiles/sidekiq_2.gemfile'
|
11
|
-
- 'gemfiles/sidekiq_3.gemfile'
|
12
|
-
- 'gemfiles/sidekiq_4.gemfile'
|
13
|
-
|
14
|
-
deploy:
|
15
|
-
provider: rubygems
|
16
|
-
api_key:
|
17
|
-
secure: "VX48kpd9UySMWSDMwjxaNZy14RW1usU7eFLGNeohjCzxUsCywn+mS5/IZHl56vDXWJp7JwnboDiIa74hGV86PcSEM7kr+DAZO33iCazMNTpoWDiH1iJfj0jZbO2rOvx0rGI9fGYcC9xfyKQ37hVb13Eo0bnKa0YX30HArnx7EFo="
|
18
|
-
on:
|
19
|
-
tags: true
|
20
|
-
all_branches: true
|