sidekiq-throttler 0.3.1 → 0.4.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
  SHA1:
3
- metadata.gz: 1a48a69a956224bcd3ea8fae08c21210e44f9aee
4
- data.tar.gz: 0f9146f8756e701ae3d1eb0beef9654dd0074c56
3
+ metadata.gz: 8acf1d69eb8a5045cdff1273d3f44342845cfc9b
4
+ data.tar.gz: 0ca683c9e8cf5149d430391ec1bd85488f3517b9
5
5
  SHA512:
6
- metadata.gz: 4608ce6e67d51e53626a8d63fbf9d06e462fc502d01cce70eb1997d726a285ec65406cc0d8aa5a59abf375ec153d76d983d4af03a6b4e138959305f66ea61bdb
7
- data.tar.gz: bb21a8d354dc7f609beb4e65886479d0688101407087b2b8b45038257f59c178719e91255f8999eff1eeee11b0a08c8bf4875f79e7382bdf0f108622e251f230
6
+ metadata.gz: 347d780d00c2c9a538c79e0bb48f3977f037d3bd70fbce3a63a24557aa01a92b350a5d80d00fe9fc79985f3c50c7603de6c080ff518380d7ac894066492c9453
7
+ data.tar.gz: 17003989b18787321d19f939ef07f8a165aa325fd7a63c79561dd5a40eaf50087fcf96450439cbdf6a95c87c00f7bf3f52cc67c3e081568b0d298fe08084c4e3
data/.gitignore CHANGED
@@ -2,17 +2,18 @@
2
2
  *.rbc
3
3
  .bundle
4
4
  .config
5
- .rspec
5
+ .rspec-local
6
6
  .yardoc
7
7
  Gemfile.lock
8
8
  InstalledFiles
9
9
  _yardoc
10
10
  coverage
11
11
  doc/
12
+ gemfiles/*.gemfile.lock
12
13
  lib/bundler/man
13
14
  pkg
14
15
  rdoc
15
16
  spec/reports
16
17
  test/tmp
17
18
  test/version_tmp
18
- tmp
19
+ tmp
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format nested
2
+ --color
data/.travis.yml CHANGED
@@ -1,9 +1,11 @@
1
1
  language: ruby
2
+ services:
3
+ - redis-server
2
4
  rvm:
5
+ - 2.1.1
6
+ - 2.1.0
3
7
  - 2.0.0
4
8
  - 1.9.3
5
- - jruby-19mode
6
- - rbx-19mode
7
9
  branches:
8
10
  only:
9
11
  - master
@@ -11,7 +13,3 @@ notifications:
11
13
  email:
12
14
  recipients:
13
15
  - gabe@ga.be
14
- matrix:
15
- allow_failures:
16
- - rvm: jruby-19mode
17
- - rvm: rbx-19mode
data/Appraisals ADDED
@@ -0,0 +1,7 @@
1
+ appraise 'sidekiq-2' do
2
+ gem 'sidekiq', '2.17.7'
3
+ end
4
+
5
+ appraise 'sidekiq-head' do
6
+ gem 'sidekiq', github: 'mperham/sidekiq'
7
+ end
data/CHANGELOG.md CHANGED
@@ -1,3 +1,18 @@
1
+ ## 0.4.0 (April 24, 2014)
2
+
3
+ * Now supports using a Proc for `:period` option.
4
+
5
+ *Kainage*
6
+
7
+ * Fix for throttler spec that was using symbol keys but the testing with
8
+ string keys.
9
+
10
+ *worst*
11
+
12
+ * Dependency lock is loosened for compatibility with Sidekiq 3.0.
13
+
14
+ *Gabe Evans*
15
+
1
16
  ## 0.3.1 (November 5, 2013)
2
17
 
3
18
  * `Singleton` is explicitly required, fixing a `NameError`.
data/README.md CHANGED
@@ -14,7 +14,9 @@ Sidekiq::Throttler is actively tested against MRI versions 2.0.0 and 1.9.3.
14
14
 
15
15
  Add this line to your application's Gemfile:
16
16
 
17
- gem 'sidekiq-throttler'
17
+ ```ruby
18
+ gem 'sidekiq-throttler'
19
+ ```
18
20
 
19
21
  And then execute:
20
22
 
@@ -49,7 +51,7 @@ Sidekiq.configure_server do |config|
49
51
  end
50
52
  ```
51
53
 
52
- ## Usage
54
+ ## Basic Usage
53
55
 
54
56
  In a worker, specify a threshold (maximum jobs) and period for throttling:
55
57
 
@@ -68,6 +70,48 @@ end
68
70
  In the above example, when the number of executed jobs for the worker exceeds
69
71
  50 in an hour, remaining jobs will be delayed.
70
72
 
73
+ ## Advanced Usage
74
+
75
+ ### Custom Keys
76
+
77
+ By default, each worker has its own key for throttling. For example:
78
+
79
+ ```ruby
80
+ class FooWorker
81
+ include Sidekiq::Worker
82
+
83
+ sidekiq_options throttle: { threshold: 50, period: 1.hour }
84
+
85
+ # ...
86
+ end
87
+
88
+ class BarWorker
89
+ include Sidekiq::Worker
90
+
91
+ sidekiq_options throttle: { threshold: 50, period: 1.hour }
92
+
93
+ # ...
94
+ end
95
+ ```
96
+
97
+ Even though `FooWorker` and `BarWorker` use the same throttle options, they are
98
+ treated as different groups. To have multiple workers with shared throttling,
99
+ the `:key` options can be used:
100
+
101
+ ```ruby
102
+ sidekiq_options throttle: { threshold: 50, period: 1.hour, key: 'foobar' }
103
+ ```
104
+
105
+ Any jobs using the same key, regardless of the worker will be tracked under the
106
+ same conditions.
107
+
108
+ ### Dynamic Throttling
109
+
110
+ Each option (`:threshold`, `:period`, and `:key`) accepts a static value but can
111
+ *also* accept a `Proc` that's called each time a job is processed.
112
+
113
+ #### Dynamic Keys
114
+
71
115
  If throttling is per-user, for example, you can specify a `Proc` for `key` which
72
116
  accepts the arguments passed to your worker's `perform` method:
73
117
 
@@ -78,6 +122,8 @@ sidekiq_options throttle: { threshold: 20, period: 1.day, key: ->(user_id){ user
78
122
  In the above example, jobs are throttled for each user when they exceed 20 in a
79
123
  day.
80
124
 
125
+ #### Dynamic Thresholds
126
+
81
127
  Thresholds can be configured based on the arguments passed to your worker's `perform` method,
82
128
  similar to how the `key` option works:
83
129
 
@@ -87,6 +133,15 @@ sidekiq_options throttle: { threshold: ->(user_id, rate_limit) { rate_limit }, p
87
133
 
88
134
  In the above example, jobs are throttled for each user when they exceed the rate limit provided in the message. This is useful in cases where each user may have a different rate limit (ex: interacting with external APIs)
89
135
 
136
+ #### Dynamic Periods
137
+
138
+ In this contrived example, our worker is limited to 9 thousand jobs every 10
139
+ minutes. However, on Tuesdays limit jobs to 9 thousand every *15 minutes*:
140
+
141
+ ```ruby
142
+ sidekiq_options throttle: { threshold: 9000, period: ->{ Date.today.tuesday? ? 15.minutes : 10.minutes } }
143
+ ```
144
+
90
145
  ## Contributing
91
146
 
92
147
  1. Fork it
data/Rakefile CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'bundler/gem_tasks'
2
+ require 'appraisal'
2
3
 
3
4
  require 'rspec/core/rake_task'
4
5
  RSpec::Core::RakeTask.new(:spec) do |spec|
@@ -15,4 +16,4 @@ task :console, :script do |t, args|
15
16
  command = 'bundle exec pry'
16
17
  command += "-r #{args[:script]}" if args[:script]
17
18
  sh command
18
- end
19
+ end
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "sidekiq", "2.17.7"
6
+
7
+ gemspec :path=>"../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "sidekiq", :github=>"mperham/sidekiq"
6
+
7
+ gemspec :path=>"../"
@@ -83,7 +83,7 @@ module Sidekiq
83
83
  # @return [Float]
84
84
  # The number of seconds in the rate limit period.
85
85
  def period
86
- @period ||= options['period'].to_f
86
+ @period ||= (options['period'].respond_to?(:call) ? options['period'].call(*payload) : options['period']).to_f
87
87
  end
88
88
 
89
89
  ##
@@ -1,5 +1,5 @@
1
1
  module Sidekiq
2
2
  class Throttler
3
- VERSION = '0.3.1'
3
+ VERSION = '0.4.0'
4
4
  end
5
5
  end
@@ -16,26 +16,25 @@ Gem::Specification.new do |gem|
16
16
  gem.files = `git ls-files`.split($/)
17
17
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
18
18
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
- gem.require_paths = ['lib']
19
+ gem.require_paths = %w(lib)
20
20
 
21
21
  gem.add_dependency 'activesupport'
22
- gem.add_dependency 'sidekiq', '>= 2.5', '< 3.0'
23
-
24
- gem.add_development_dependency 'rake'
25
- gem.add_development_dependency 'pry'
26
- gem.add_development_dependency 'yard'
27
- gem.add_development_dependency 'redcarpet'
28
-
29
- gem.add_development_dependency 'rspec'
30
- gem.add_development_dependency 'rspec-redis_helper'
31
- gem.add_development_dependency 'timecop'
32
- gem.add_development_dependency 'simplecov'
22
+ gem.add_dependency 'sidekiq', '>= 2.5', '< 3.1'
33
23
 
24
+ gem.add_development_dependency 'appraisal', '~> 0.5'
25
+ gem.add_development_dependency 'growl'
34
26
  gem.add_development_dependency 'guard'
35
27
  gem.add_development_dependency 'guard-bundler'
36
28
  gem.add_development_dependency 'guard-rspec'
37
29
  gem.add_development_dependency 'guard-yard'
30
+ gem.add_development_dependency 'pry'
31
+ gem.add_development_dependency 'rake'
38
32
  gem.add_development_dependency 'rb-fsevent'
39
33
  gem.add_development_dependency 'rb-inotify'
40
- gem.add_development_dependency 'growl'
34
+ gem.add_development_dependency 'redcarpet'
35
+ gem.add_development_dependency 'rspec'
36
+ gem.add_development_dependency 'rspec-redis_helper'
37
+ gem.add_development_dependency 'simplecov'
38
+ gem.add_development_dependency 'timecop'
39
+ gem.add_development_dependency 'yard'
41
40
  end
@@ -0,0 +1,10 @@
1
+ class ProcPeriodWorker
2
+ include Sidekiq::Worker
3
+
4
+ sidekiq_options throttle: { threshold: 10, period: Proc.new { |user_id, period| period } }
5
+
6
+ def perform(user_id, period)
7
+ puts user_id
8
+ puts period
9
+ end
10
+ end
@@ -136,6 +136,20 @@ describe Sidekiq::Throttler::RateLimit do
136
136
 
137
137
  describe '#period' do
138
138
 
139
+ context 'when period is a Proc' do
140
+ let(:worker_class) do
141
+ ProcPeriodWorker
142
+ end
143
+
144
+ let(:payload) do
145
+ [1, 1.minute]
146
+ end
147
+
148
+ it 'returns the result of the called Proc' do
149
+ rate_limit.period.should eq(60)
150
+ end
151
+ end
152
+
139
153
  it 'retrieves the period from #options' do
140
154
  rate_limit.options['period'] = 10.0
141
155
  rate_limit.period.should eq(10.0)
@@ -16,7 +16,7 @@ describe Sidekiq::Throttler do
16
16
 
17
17
  let(:message) do
18
18
  {
19
- args: 'Clint Eastwood'
19
+ 'args' => 'Clint Eastwood'
20
20
  }
21
21
  end
22
22
 
metadata CHANGED
@@ -1,257 +1,271 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq-throttler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gabe Evans
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-05 00:00:00.000000000 Z
11
+ date: 2014-04-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: sidekiq
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '2.5'
34
- - - <
34
+ - - "<"
35
35
  - !ruby/object:Gem::Version
36
- version: '3.0'
36
+ version: '3.1'
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
- - - '>='
41
+ - - ">="
42
42
  - !ruby/object:Gem::Version
43
43
  version: '2.5'
44
- - - <
44
+ - - "<"
45
45
  - !ruby/object:Gem::Version
46
- version: '3.0'
46
+ version: '3.1'
47
47
  - !ruby/object:Gem::Dependency
48
- name: rake
48
+ name: appraisal
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '0.5'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '0.5'
61
+ - !ruby/object:Gem::Dependency
62
+ name: growl
49
63
  requirement: !ruby/object:Gem::Requirement
50
64
  requirements:
51
- - - '>='
65
+ - - ">="
52
66
  - !ruby/object:Gem::Version
53
67
  version: '0'
54
68
  type: :development
55
69
  prerelease: false
56
70
  version_requirements: !ruby/object:Gem::Requirement
57
71
  requirements:
58
- - - '>='
72
+ - - ">="
59
73
  - !ruby/object:Gem::Version
60
74
  version: '0'
61
75
  - !ruby/object:Gem::Dependency
62
- name: pry
76
+ name: guard
63
77
  requirement: !ruby/object:Gem::Requirement
64
78
  requirements:
65
- - - '>='
79
+ - - ">="
66
80
  - !ruby/object:Gem::Version
67
81
  version: '0'
68
82
  type: :development
69
83
  prerelease: false
70
84
  version_requirements: !ruby/object:Gem::Requirement
71
85
  requirements:
72
- - - '>='
86
+ - - ">="
73
87
  - !ruby/object:Gem::Version
74
88
  version: '0'
75
89
  - !ruby/object:Gem::Dependency
76
- name: yard
90
+ name: guard-bundler
77
91
  requirement: !ruby/object:Gem::Requirement
78
92
  requirements:
79
- - - '>='
93
+ - - ">="
80
94
  - !ruby/object:Gem::Version
81
95
  version: '0'
82
96
  type: :development
83
97
  prerelease: false
84
98
  version_requirements: !ruby/object:Gem::Requirement
85
99
  requirements:
86
- - - '>='
100
+ - - ">="
87
101
  - !ruby/object:Gem::Version
88
102
  version: '0'
89
103
  - !ruby/object:Gem::Dependency
90
- name: redcarpet
104
+ name: guard-rspec
91
105
  requirement: !ruby/object:Gem::Requirement
92
106
  requirements:
93
- - - '>='
107
+ - - ">="
94
108
  - !ruby/object:Gem::Version
95
109
  version: '0'
96
110
  type: :development
97
111
  prerelease: false
98
112
  version_requirements: !ruby/object:Gem::Requirement
99
113
  requirements:
100
- - - '>='
114
+ - - ">="
101
115
  - !ruby/object:Gem::Version
102
116
  version: '0'
103
117
  - !ruby/object:Gem::Dependency
104
- name: rspec
118
+ name: guard-yard
105
119
  requirement: !ruby/object:Gem::Requirement
106
120
  requirements:
107
- - - '>='
121
+ - - ">="
108
122
  - !ruby/object:Gem::Version
109
123
  version: '0'
110
124
  type: :development
111
125
  prerelease: false
112
126
  version_requirements: !ruby/object:Gem::Requirement
113
127
  requirements:
114
- - - '>='
128
+ - - ">="
115
129
  - !ruby/object:Gem::Version
116
130
  version: '0'
117
131
  - !ruby/object:Gem::Dependency
118
- name: rspec-redis_helper
132
+ name: pry
119
133
  requirement: !ruby/object:Gem::Requirement
120
134
  requirements:
121
- - - '>='
135
+ - - ">="
122
136
  - !ruby/object:Gem::Version
123
137
  version: '0'
124
138
  type: :development
125
139
  prerelease: false
126
140
  version_requirements: !ruby/object:Gem::Requirement
127
141
  requirements:
128
- - - '>='
142
+ - - ">="
129
143
  - !ruby/object:Gem::Version
130
144
  version: '0'
131
145
  - !ruby/object:Gem::Dependency
132
- name: timecop
146
+ name: rake
133
147
  requirement: !ruby/object:Gem::Requirement
134
148
  requirements:
135
- - - '>='
149
+ - - ">="
136
150
  - !ruby/object:Gem::Version
137
151
  version: '0'
138
152
  type: :development
139
153
  prerelease: false
140
154
  version_requirements: !ruby/object:Gem::Requirement
141
155
  requirements:
142
- - - '>='
156
+ - - ">="
143
157
  - !ruby/object:Gem::Version
144
158
  version: '0'
145
159
  - !ruby/object:Gem::Dependency
146
- name: simplecov
160
+ name: rb-fsevent
147
161
  requirement: !ruby/object:Gem::Requirement
148
162
  requirements:
149
- - - '>='
163
+ - - ">="
150
164
  - !ruby/object:Gem::Version
151
165
  version: '0'
152
166
  type: :development
153
167
  prerelease: false
154
168
  version_requirements: !ruby/object:Gem::Requirement
155
169
  requirements:
156
- - - '>='
170
+ - - ">="
157
171
  - !ruby/object:Gem::Version
158
172
  version: '0'
159
173
  - !ruby/object:Gem::Dependency
160
- name: guard
174
+ name: rb-inotify
161
175
  requirement: !ruby/object:Gem::Requirement
162
176
  requirements:
163
- - - '>='
177
+ - - ">="
164
178
  - !ruby/object:Gem::Version
165
179
  version: '0'
166
180
  type: :development
167
181
  prerelease: false
168
182
  version_requirements: !ruby/object:Gem::Requirement
169
183
  requirements:
170
- - - '>='
184
+ - - ">="
171
185
  - !ruby/object:Gem::Version
172
186
  version: '0'
173
187
  - !ruby/object:Gem::Dependency
174
- name: guard-bundler
188
+ name: redcarpet
175
189
  requirement: !ruby/object:Gem::Requirement
176
190
  requirements:
177
- - - '>='
191
+ - - ">="
178
192
  - !ruby/object:Gem::Version
179
193
  version: '0'
180
194
  type: :development
181
195
  prerelease: false
182
196
  version_requirements: !ruby/object:Gem::Requirement
183
197
  requirements:
184
- - - '>='
198
+ - - ">="
185
199
  - !ruby/object:Gem::Version
186
200
  version: '0'
187
201
  - !ruby/object:Gem::Dependency
188
- name: guard-rspec
202
+ name: rspec
189
203
  requirement: !ruby/object:Gem::Requirement
190
204
  requirements:
191
- - - '>='
205
+ - - ">="
192
206
  - !ruby/object:Gem::Version
193
207
  version: '0'
194
208
  type: :development
195
209
  prerelease: false
196
210
  version_requirements: !ruby/object:Gem::Requirement
197
211
  requirements:
198
- - - '>='
212
+ - - ">="
199
213
  - !ruby/object:Gem::Version
200
214
  version: '0'
201
215
  - !ruby/object:Gem::Dependency
202
- name: guard-yard
216
+ name: rspec-redis_helper
203
217
  requirement: !ruby/object:Gem::Requirement
204
218
  requirements:
205
- - - '>='
219
+ - - ">="
206
220
  - !ruby/object:Gem::Version
207
221
  version: '0'
208
222
  type: :development
209
223
  prerelease: false
210
224
  version_requirements: !ruby/object:Gem::Requirement
211
225
  requirements:
212
- - - '>='
226
+ - - ">="
213
227
  - !ruby/object:Gem::Version
214
228
  version: '0'
215
229
  - !ruby/object:Gem::Dependency
216
- name: rb-fsevent
230
+ name: simplecov
217
231
  requirement: !ruby/object:Gem::Requirement
218
232
  requirements:
219
- - - '>='
233
+ - - ">="
220
234
  - !ruby/object:Gem::Version
221
235
  version: '0'
222
236
  type: :development
223
237
  prerelease: false
224
238
  version_requirements: !ruby/object:Gem::Requirement
225
239
  requirements:
226
- - - '>='
240
+ - - ">="
227
241
  - !ruby/object:Gem::Version
228
242
  version: '0'
229
243
  - !ruby/object:Gem::Dependency
230
- name: rb-inotify
244
+ name: timecop
231
245
  requirement: !ruby/object:Gem::Requirement
232
246
  requirements:
233
- - - '>='
247
+ - - ">="
234
248
  - !ruby/object:Gem::Version
235
249
  version: '0'
236
250
  type: :development
237
251
  prerelease: false
238
252
  version_requirements: !ruby/object:Gem::Requirement
239
253
  requirements:
240
- - - '>='
254
+ - - ">="
241
255
  - !ruby/object:Gem::Version
242
256
  version: '0'
243
257
  - !ruby/object:Gem::Dependency
244
- name: growl
258
+ name: yard
245
259
  requirement: !ruby/object:Gem::Requirement
246
260
  requirements:
247
- - - '>='
261
+ - - ">="
248
262
  - !ruby/object:Gem::Version
249
263
  version: '0'
250
264
  type: :development
251
265
  prerelease: false
252
266
  version_requirements: !ruby/object:Gem::Requirement
253
267
  requirements:
254
- - - '>='
268
+ - - ">="
255
269
  - !ruby/object:Gem::Version
256
270
  version: '0'
257
271
  description: Sidekiq middleware that adds the ability to rate limit job execution.
@@ -261,16 +275,20 @@ executables: []
261
275
  extensions: []
262
276
  extra_rdoc_files: []
263
277
  files:
264
- - .gitignore
265
- - .pryrc
266
- - .travis.yml
267
- - .yardopts
278
+ - ".gitignore"
279
+ - ".pryrc"
280
+ - ".rspec"
281
+ - ".travis.yml"
282
+ - ".yardopts"
283
+ - Appraisals
268
284
  - CHANGELOG.md
269
285
  - Gemfile
270
286
  - Guardfile
271
287
  - LICENSE.txt
272
288
  - README.md
273
289
  - Rakefile
290
+ - gemfiles/sidekiq_2.gemfile
291
+ - gemfiles/sidekiq_head.gemfile
274
292
  - lib/sidekiq-throttler.rb
275
293
  - lib/sidekiq/throttler.rb
276
294
  - lib/sidekiq/throttler/rate_limit.rb
@@ -280,6 +298,7 @@ files:
280
298
  - sidekiq-throttler.gemspec
281
299
  - spec/app/workers/custom_key_worker.rb
282
300
  - spec/app/workers/lolz_worker.rb
301
+ - spec/app/workers/proc_period_worker.rb
283
302
  - spec/app/workers/proc_threshold_worker.rb
284
303
  - spec/app/workers/proc_worker.rb
285
304
  - spec/app/workers/regular_worker.rb
@@ -299,17 +318,17 @@ require_paths:
299
318
  - lib
300
319
  required_ruby_version: !ruby/object:Gem::Requirement
301
320
  requirements:
302
- - - '>='
321
+ - - ">="
303
322
  - !ruby/object:Gem::Version
304
323
  version: '0'
305
324
  required_rubygems_version: !ruby/object:Gem::Requirement
306
325
  requirements:
307
- - - '>='
326
+ - - ">="
308
327
  - !ruby/object:Gem::Version
309
328
  version: '0'
310
329
  requirements: []
311
330
  rubyforge_project:
312
- rubygems_version: 2.1.5
331
+ rubygems_version: 2.2.2
313
332
  signing_key:
314
333
  specification_version: 4
315
334
  summary: Sidekiq::Throttler is a middleware for Sidekiq that adds the ability to rate
@@ -317,6 +336,7 @@ summary: Sidekiq::Throttler is a middleware for Sidekiq that adds the ability to
317
336
  test_files:
318
337
  - spec/app/workers/custom_key_worker.rb
319
338
  - spec/app/workers/lolz_worker.rb
339
+ - spec/app/workers/proc_period_worker.rb
320
340
  - spec/app/workers/proc_threshold_worker.rb
321
341
  - spec/app/workers/proc_worker.rb
322
342
  - spec/app/workers/regular_worker.rb