sidekiq-throttled 0.11.0 → 0.12.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '05945dcd1de433dd74010e8fa402c6fb2e6100fb6306aef386536da24cd2e08b'
4
- data.tar.gz: fe07b3c6409e7749f2af3b85d36e27dcda5d53b92c771e050a951f6175cec407
3
+ metadata.gz: 6112ba7b54891bb2026f3e01a299c61d063b4f7efae86ace8c189606ca9ecabf
4
+ data.tar.gz: 01e999a1093465e5ef702b4553215e1371b86c6dc024b2218b40988ad388ec91
5
5
  SHA512:
6
- metadata.gz: 2965642d0564eaf45c033b6c6d6ddfe5b80804eebfbfef7908c4f81bbc450baec4e71d1b70fe21bf6515336d173b3a95e74c4b97aa26d35a3947b7b24ba02c1e
7
- data.tar.gz: 149ba3f6d29c9963c52f96d7ea1b6be23424726a7791afe7c3fad4ab95bf82b2db0df274ee3a26842e7726e1f403afff2d99c997f1033f2ddb63a95f9790d698
6
+ metadata.gz: ba63bb6792f530028d937f629afc3e64be80fa03be250f986e1172af76b826ffbf5c23f43424f919ee83fd5d6d6b76f50589bfc656f642440b75c9c5f94b9aa8
7
+ data.tar.gz: b4df934846e581d6f06aee42f24142c556972a30b5b063906b86f01bc74f046b78520a30b5ca68770eac92849f60636bf55515eb7d928437cb3e1354e48815a3
@@ -0,0 +1,56 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [ master ]
6
+ pull_request:
7
+ branches: [ master ]
8
+
9
+ jobs:
10
+ rspec:
11
+ name: "rspec (ruby:${{ matrix.ruby }} sidekiq:${{ matrix.sidekiq }})"
12
+
13
+ strategy:
14
+ matrix:
15
+ ruby: [ "2.4", "2.5", "2.6", "2.7" ]
16
+ sidekiq: [ "5.0", "5.1", "5.2", "6.0" ]
17
+ exclude:
18
+ - { ruby: "2.4", sidekiq: "6.0" }
19
+
20
+ runs-on: ubuntu-latest
21
+
22
+ services:
23
+ redis:
24
+ image: redis
25
+ ports: ["6379:6379"]
26
+ options: "--entrypoint redis-server"
27
+
28
+ env:
29
+ GEMFILE: gemfiles/sidekiq_${{ matrix.sidekiq }}.gemfile
30
+
31
+ steps:
32
+ - uses: actions/checkout@v2
33
+
34
+ - uses: ruby/setup-ruby@v1
35
+ with:
36
+ ruby-version: ${{ matrix.ruby }}
37
+
38
+ - name: bundle install
39
+ run: bundle install --without development --jobs 4 --retry 3
40
+
41
+ - run: bundle exec rspec
42
+
43
+ rubocop:
44
+ runs-on: ubuntu-latest
45
+
46
+ steps:
47
+ - uses: actions/checkout@v2
48
+
49
+ - uses: ruby/setup-ruby@v1
50
+ with:
51
+ ruby-version: "2.4"
52
+
53
+ - name: bundle install
54
+ run: bundle install --without development --jobs 4 --retry 3
55
+
56
+ - run: bundle exec rubocop
@@ -14,24 +14,41 @@ AllCops:
14
14
 
15
15
  ## Layout ######################################################################
16
16
 
17
- Layout/AlignHash:
18
- EnforcedHashRocketStyle: table
19
-
20
- Layout/AlignParameters:
17
+ Layout/ArgumentAlignment:
21
18
  EnforcedStyle: with_fixed_indentation
22
19
 
23
- Layout/IndentArray:
20
+ Layout/FirstArrayElementIndentation:
24
21
  EnforcedStyle: consistent
25
22
 
26
- Layout/IndentHash:
23
+ Layout/FirstHashElementIndentation:
27
24
  EnforcedStyle: consistent
28
25
 
26
+ Layout/HashAlignment:
27
+ EnforcedHashRocketStyle: table
28
+
29
+ Layout/LineLength:
30
+ Max: 100
31
+
29
32
  Layout/MultilineMethodCallIndentation:
30
33
  EnforcedStyle: indented
31
34
 
35
+ Layout/ParameterAlignment:
36
+ EnforcedStyle: with_fixed_indentation
37
+
38
+ Layout/SpaceAroundMethodCallOperator:
39
+ Enabled: true
40
+
32
41
  Layout/SpaceInLambdaLiteral:
33
42
  EnforcedStyle: require_space
34
43
 
44
+ ## Lint ########################################################################
45
+
46
+ Lint/RaiseException:
47
+ Enabled: true
48
+
49
+ Lint/StructNewOverride:
50
+ Enabled: true
51
+
35
52
  ## Metrics #####################################################################
36
53
 
37
54
  Metrics/BlockLength:
@@ -41,15 +58,24 @@ Metrics/BlockLength:
41
58
 
42
59
  ## Styles ######################################################################
43
60
 
44
- Style/BracesAroundHashParameters:
45
- Enabled: false
46
-
47
61
  Style/Documentation:
48
62
  Enabled: false
49
63
 
64
+ Style/ExponentialNotation:
65
+ Enabled: true
66
+
67
+ Style/HashEachMethods:
68
+ Enabled: true
69
+
50
70
  Style/HashSyntax:
51
71
  EnforcedStyle: hash_rockets
52
72
 
73
+ Style/HashTransformKeys:
74
+ Enabled: true
75
+
76
+ Style/HashTransformValues:
77
+ Enabled: true
78
+
53
79
  # Follow your heart where it makes sense to use lambda or lambda literal.
54
80
  # Enforcing it makes some pieces of code look REALLY terrible, e.g. in
55
81
  # case of empty (noop) lambdas: `lambda { |_| }`.
@@ -1,5 +1,4 @@
1
1
  language: ruby
2
- sudo: false
3
2
 
4
3
  services:
5
4
  - redis-server
@@ -23,6 +22,7 @@ rvm:
23
22
  - 2.4
24
23
  - 2.5
25
24
  - 2.6
25
+ - 2.7
26
26
 
27
27
  matrix:
28
28
  fast_finish: true
@@ -36,3 +36,4 @@ gemfile:
36
36
  - gemfiles/sidekiq_5.0.gemfile
37
37
  - gemfiles/sidekiq_5.1.gemfile
38
38
  - gemfiles/sidekiq_5.2.gemfile
39
+ - gemfiles/sidekiq_6.0.gemfile
data/Appraisals CHANGED
@@ -11,3 +11,7 @@ end
11
11
  appraise "sidekiq-5.2" do
12
12
  gem "sidekiq", "~> 5.2.0"
13
13
  end
14
+
15
+ appraise "sidekiq-6.0" do
16
+ gem "sidekiq", "~> 6.0.0"
17
+ end
data/CHANGES.md CHANGED
@@ -1,3 +1,14 @@
1
+ ## 0.12.0 (2020-06-22)
2
+
3
+ * [#80](https://github.com/sensortower/sidekiq-throttled/pull/80)
4
+ Allow override cooldown timeout of queues with throttled jobs.
5
+ ([@vaot])
6
+
7
+ * [#76](https://github.com/sensortower/sidekiq-throttled/pull/76)
8
+ Fix warnings on Ruby 2.7
9
+ ([@lenon])
10
+
11
+
1
12
  ## 0.11.0 (2019-08-24)
2
13
 
3
14
  * [#59](https://github.com/sensortower/sidekiq-throttled/pull/59)
@@ -201,3 +212,5 @@
201
212
  [@mstruve]: https://github.com/mstruve
202
213
  [@ziaulrehman40]: https://github.com/ziaulrehman40
203
214
  [@ogins57]: https://github.com/ogins57
215
+ [@lenon]: https://github.com/lenon
216
+ [@vaot]: https://github.com/vaot
data/Gemfile CHANGED
@@ -5,8 +5,9 @@ source "https://rubygems.org"
5
5
  gem "appraisal"
6
6
  gem "rake"
7
7
  gem "rspec"
8
- gem "rubocop", "~> 0.58.0", :require => false
9
- gem "rubocop-rspec", "~> 1.29.1", :require => false
8
+ gem "rubocop", "~> 0.82.0", :require => false
9
+ gem "rubocop-performance", "~>1.5.2", :require => false
10
+ gem "rubocop-rspec", "~> 1.39.0", :require => false
10
11
  gem "sidekiq"
11
12
 
12
13
  group :development do
@@ -17,13 +18,13 @@ group :development do
17
18
  end
18
19
 
19
20
  group :test do
21
+ gem "apparition"
20
22
  gem "capybara"
21
23
  gem "coveralls", :require => false
22
- gem "poltergeist"
23
24
  gem "puma"
24
25
  gem "rack-test"
25
- gem "simplecov", ">= 0.9"
26
- gem "sinatra", "~> 1.4", ">= 1.4.6"
26
+ gem "simplecov"
27
+ gem "sinatra"
27
28
  gem "timecop"
28
29
  end
29
30
 
data/LICENSE.md CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2015-2018 SensorTower Inc.
3
+ Copyright (c) 2015-2020 SensorTower Inc.
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -1,14 +1,14 @@
1
1
  # Sidekiq::Throttled
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/sidekiq-throttled.svg)](http://rubygems.org/gems/sidekiq-throttled)
4
- [![Build Status](https://travis-ci.org/sensortower/sidekiq-throttled.svg?branch=master)](https://travis-ci.org/sensortower/sidekiq-throttled)
5
- [![Code Climate](https://codeclimate.com/github/sensortower/sidekiq-throttled.svg?branch=master)](https://codeclimate.com/github/sensortower/sidekiq-throttled)
6
- [![Coverage Status](https://coveralls.io/repos/github/sensortower/sidekiq-throttled/badge.svg?branch=master)](https://coveralls.io/github/sensortower/sidekiq-throttled?branch=master)
7
- [![API Docs](http://inch-ci.org/github/sensortower/sidekiq-throttled.svg?branch=master)](http://inch-ci.org/github/sensortower/sidekiq-throttled)
3
+ [![Latest Version](https://badge.fury.io/rb/sidekiq-throttled.svg)](http://rubygems.org/gems/sidekiq-throttled)
4
+ [![CI Status](https://github.com/sensortower/sidekiq-throttled/workflows/CI/badge.svg?branch=master)](https://github.com/sensortower/sidekiq-throttled/actions?query=workflow%3ACI+branch%3Amaster)
5
+ [![Code Quality](https://codeclimate.com/github/sensortower/sidekiq-throttled.svg?branch=master)](https://codeclimate.com/github/sensortower/sidekiq-throttled)
6
+ [![Code Coverage](https://coveralls.io/repos/github/sensortower/sidekiq-throttled/badge.svg?branch=master)](https://coveralls.io/github/sensortower/sidekiq-throttled?branch=master)
7
+ [![API Docs Quality](http://inch-ci.org/github/sensortower/sidekiq-throttled.svg?branch=master)](http://inch-ci.org/github/sensortower/sidekiq-throttled)
8
+ [![API Docs](https://img.shields.io/badge/yard-docs-blue.svg)](http://www.rubydoc.info/gems/sidekiq-throttled)
8
9
 
9
10
  Concurrency and threshold throttling for [Sidekiq][sidekiq].
10
11
 
11
-
12
12
  ## Installation
13
13
 
14
14
  Add this line to your application's Gemfile:
@@ -36,6 +36,9 @@ require "sidekiq/throttled"
36
36
  Sidekiq::Throttled.setup!
37
37
  ```
38
38
 
39
+ Load order can be an issue if you are using other Sidekiq plugins and/or middleware.
40
+ To prevent any problems, add the `.setup!` call to the bottom of your init file.
41
+
39
42
  Once you've done that you can include `Sidekiq::Throttled::Worker` to your
40
43
  job classes and configure throttling:
41
44
 
@@ -88,7 +91,7 @@ end
88
91
  ```
89
92
 
90
93
  Observer will receive `strategy, *args` arguments, where `strategy` is a Symbol
91
- `:concurrency` or `:threshold`, and `*args` are the arguements that were passed
94
+ `:concurrency` or `:threshold`, and `*args` are the arguments that were passed
92
95
  to the job.
93
96
 
94
97
 
@@ -231,6 +234,7 @@ This library aims to support work with following [Sidekiq][sidekiq] versions:
231
234
  * Sidekiq 5.0.x
232
235
  * Sidekiq 5.1.x
233
236
  * Sidekiq 5.2.x
237
+ * Sidekiq 6.0.x
234
238
 
235
239
 
236
240
  ## Contributing
@@ -258,7 +262,7 @@ Don't forget to run `appraisal update` after any changes to `Gemfile`.
258
262
 
259
263
  ## Copyright
260
264
 
261
- Copyright (c) 2015-2018 SensorTower Inc.
265
+ Copyright (c) 2015-2020 SensorTower Inc.
262
266
  See LICENSE.md for further details.
263
267
 
264
268
 
@@ -5,8 +5,9 @@ source "https://rubygems.org"
5
5
  gem "appraisal"
6
6
  gem "rake"
7
7
  gem "rspec"
8
- gem "rubocop", "~> 0.58.0", require: false
9
- gem "rubocop-rspec", "~> 1.29.1", require: false
8
+ gem "rubocop", "~> 0.82.0", require: false
9
+ gem "rubocop-performance", "~>1.5.2", require: false
10
+ gem "rubocop-rspec", "~> 1.39.0", require: false
10
11
  gem "sidekiq", "~> 5.0.0"
11
12
 
12
13
  group :development do
@@ -17,13 +18,13 @@ group :development do
17
18
  end
18
19
 
19
20
  group :test do
21
+ gem "apparition"
20
22
  gem "capybara"
21
23
  gem "coveralls", require: false
22
- gem "poltergeist"
23
24
  gem "puma"
24
25
  gem "rack-test"
25
- gem "simplecov", ">= 0.9"
26
- gem "sinatra", "~> 1.4", ">= 1.4.6"
26
+ gem "simplecov"
27
+ gem "sinatra"
27
28
  gem "timecop"
28
29
  end
29
30
 
@@ -5,8 +5,9 @@ source "https://rubygems.org"
5
5
  gem "appraisal"
6
6
  gem "rake"
7
7
  gem "rspec"
8
- gem "rubocop", "~> 0.58.0", require: false
9
- gem "rubocop-rspec", "~> 1.29.1", require: false
8
+ gem "rubocop", "~> 0.82.0", require: false
9
+ gem "rubocop-performance", "~>1.5.2", require: false
10
+ gem "rubocop-rspec", "~> 1.39.0", require: false
10
11
  gem "sidekiq", "~> 5.1.0"
11
12
 
12
13
  group :development do
@@ -17,13 +18,13 @@ group :development do
17
18
  end
18
19
 
19
20
  group :test do
21
+ gem "apparition"
20
22
  gem "capybara"
21
23
  gem "coveralls", require: false
22
- gem "poltergeist"
23
24
  gem "puma"
24
25
  gem "rack-test"
25
- gem "simplecov", ">= 0.9"
26
- gem "sinatra", "~> 1.4", ">= 1.4.6"
26
+ gem "simplecov"
27
+ gem "sinatra"
27
28
  gem "timecop"
28
29
  end
29
30
 
@@ -5,8 +5,9 @@ source "https://rubygems.org"
5
5
  gem "appraisal"
6
6
  gem "rake"
7
7
  gem "rspec"
8
- gem "rubocop", "~> 0.58.0", require: false
9
- gem "rubocop-rspec", "~> 1.29.1", require: false
8
+ gem "rubocop", "~> 0.82.0", require: false
9
+ gem "rubocop-performance", "~>1.5.2", require: false
10
+ gem "rubocop-rspec", "~> 1.39.0", require: false
10
11
  gem "sidekiq", "~> 5.2.0"
11
12
 
12
13
  group :development do
@@ -17,13 +18,13 @@ group :development do
17
18
  end
18
19
 
19
20
  group :test do
21
+ gem "apparition"
20
22
  gem "capybara"
21
23
  gem "coveralls", require: false
22
- gem "poltergeist"
23
24
  gem "puma"
24
25
  gem "rack-test"
25
- gem "simplecov", ">= 0.9"
26
- gem "sinatra", "~> 1.4", ">= 1.4.6"
26
+ gem "simplecov"
27
+ gem "sinatra"
27
28
  gem "timecop"
28
29
  end
29
30
 
@@ -0,0 +1,31 @@
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", "~> 0.82.0", require: false
9
+ gem "rubocop-performance", "~>1.5.2", require: false
10
+ gem "rubocop-rspec", "~> 1.39.0", require: false
11
+ gem "sidekiq", "~> 6.0.0"
12
+
13
+ group :development do
14
+ gem "byebug"
15
+ gem "guard", require: false
16
+ gem "guard-rspec", require: false
17
+ gem "guard-rubocop", require: false
18
+ end
19
+
20
+ group :test do
21
+ gem "apparition"
22
+ gem "capybara"
23
+ gem "coveralls", require: false
24
+ gem "puma"
25
+ gem "rack-test"
26
+ gem "simplecov"
27
+ gem "sinatra"
28
+ gem "timecop"
29
+ end
30
+
31
+ gemspec path: "../"
@@ -43,6 +43,7 @@ module Sidekiq
43
43
  # @return [self]
44
44
  def on(event, &handler)
45
45
  raise ArgumentError, "No block given" unless handler
46
+
46
47
  @mutex.synchronize { @handlers[event.to_s] << handler }
47
48
  self
48
49
  end
@@ -11,7 +11,7 @@ module Sidekiq
11
11
  #
12
12
  # ## Implementation
13
13
  #
14
- # Internally list holds an array of arrays. Thus ecah element is a tuple of
14
+ # Internally list holds an array of arrays. Thus each element is a tuple of
15
15
  # monotonic timestamp (when element was added) and element itself:
16
16
  #
17
17
  # [
@@ -17,11 +17,19 @@ module Sidekiq
17
17
  TIMEOUT = 2
18
18
 
19
19
  # Initializes fetcher instance.
20
+ # @param options [Hash]
21
+ # @option options [Integer] :throttled_queue_cooldown (TIMEOUT)
22
+ # Min delay in seconds before queue will be polled again after
23
+ # throttled job.
24
+ # @option options [Boolean] :strict (false)
25
+ # @option options [Array<#to_s>] :queue
20
26
  def initialize(options)
21
- @paused = ExpirableList.new(TIMEOUT)
27
+ @paused = ExpirableList.new(options.fetch(:throttled_queue_cooldown, TIMEOUT))
22
28
 
23
- @strict = options[:strict]
24
- @queues = options[:queues].map { |q| QueueName.expand q }
29
+ @strict = options.fetch(:strict, false)
30
+ @queues = options.fetch(:queues).map { |q| QueueName.expand q }
31
+
32
+ raise ArgumentError, "empty :queues" if @queues.empty?
25
33
 
26
34
  @queues.uniq! if @strict
27
35
  end
@@ -7,7 +7,7 @@ module Sidekiq
7
7
  # @private
8
8
  module QueueName
9
9
  # RegExp used to stip out any redisr-namespace prefixes with `queue:`.
10
- QUEUE_NAME_PREFIX_RE = /.*queue:/
10
+ QUEUE_NAME_PREFIX_RE = /.*queue:/.freeze
11
11
  private_constant :QUEUE_NAME_PREFIX_RE
12
12
 
13
13
  class << self
@@ -74,6 +74,7 @@ module Sidekiq
74
74
  # @return [Registry]
75
75
  def each
76
76
  return to_enum(__method__) unless block_given?
77
+
77
78
  @strategies.each { |*args| yield(*args) }
78
79
  self
79
80
  end
@@ -88,6 +89,7 @@ module Sidekiq
88
89
  # @return [Registry]
89
90
  def each_with_static_keys
90
91
  return to_enum(__method__) unless block_given?
92
+
91
93
  @strategies.each do |name, strategy|
92
94
  yield(name, strategy) unless strategy.dynamic?
93
95
  end
@@ -86,10 +86,7 @@ module Sidekiq
86
86
  def make_strategy(strategy, name, key_suffix, options)
87
87
  return unless options
88
88
 
89
- strategy.new("throttled:#{name}", {
90
- :key_suffix => key_suffix,
91
- **options
92
- })
89
+ strategy.new("throttled:#{name}", :key_suffix => key_suffix, **options)
93
90
  end
94
91
  end
95
92
  end
@@ -46,12 +46,12 @@ module Sidekiq
46
46
  return false unless job_limit
47
47
  return true if job_limit <= 0
48
48
 
49
- kwargs = {
50
- :keys => [key(job_args)],
51
- :argv => [jid.to_s, job_limit, @ttl, Time.now.to_f]
52
- }
49
+ keys = [key(job_args)]
50
+ argv = [jid.to_s, job_limit, @ttl, Time.now.to_f]
53
51
 
54
- Sidekiq.redis { |redis| 1 == SCRIPT.eval(redis, kwargs) }
52
+ Sidekiq.redis do |redis|
53
+ 1 == SCRIPT.eval(redis, :keys => keys, :argv => argv)
54
+ end
55
55
  end
56
56
 
57
57
  # @return [Integer] Current count of jobs
@@ -48,6 +48,7 @@ module Sidekiq
48
48
  # @return [Float] Period in seconds
49
49
  def period(job_args = nil)
50
50
  return @period.to_f unless @period.respond_to? :call
51
+
51
52
  @period.call(*job_args).to_f
52
53
  end
53
54
 
@@ -62,12 +63,12 @@ module Sidekiq
62
63
  return false unless job_limit
63
64
  return true if job_limit <= 0
64
65
 
65
- kwargs = {
66
- :keys => [key(job_args)],
67
- :argv => [job_limit, period(job_args), Time.now.to_f]
68
- }
66
+ keys = [key(job_args)]
67
+ argv = [job_limit, period(job_args), Time.now.to_f]
69
68
 
70
- Sidekiq.redis { |redis| 1 == SCRIPT.eval(redis, kwargs) }
69
+ Sidekiq.redis do |redis|
70
+ 1 == SCRIPT.eval(redis, :keys => keys, :argv => argv)
71
+ end
71
72
  end
72
73
 
73
74
  # @return [Integer] Current count of jobs
@@ -3,6 +3,6 @@
3
3
  module Sidekiq
4
4
  module Throttled
5
5
  # Gem version
6
- VERSION = "0.11.0"
6
+ VERSION = "0.12.0"
7
7
  end
8
8
  end
@@ -14,9 +14,7 @@ module Sidekiq
14
14
 
15
15
  # @param [Strategy::Concurrency, Strategy::Threshold] strategy
16
16
  def initialize(strategy)
17
- if strategy&.dynamic?
18
- raise ArgumentError, "Can't handle dynamic strategies"
19
- end
17
+ raise ArgumentError, "Can't handle dynamic strategies" if strategy&.dynamic?
20
18
 
21
19
  @strategy = strategy
22
20
  end
@@ -27,9 +25,7 @@ module Sidekiq
27
25
 
28
26
  html = humanize_integer(@strategy.limit) << " jobs"
29
27
 
30
- if @strategy.respond_to? :period
31
- html << " per " << humanize_duration(@strategy.period)
32
- end
28
+ html << " per " << humanize_duration(@strategy.period) if @strategy.respond_to?(:period)
33
29
 
34
30
  html << "<br />" << colorize_count(@strategy.count, @strategy.limit)
35
31
  end
@@ -11,7 +11,8 @@ module Sidekiq
11
11
  attr_accessor :enabled
12
12
 
13
13
  def apply!(app)
14
- Sidekiq::WebAction.send(:prepend, SummaryFix)
14
+ Sidekiq::WebAction.prepend SummaryFix
15
+
15
16
  app.get("/throttled/summary_fix") do
16
17
  [200, HEADERS.dup, JAVASCRIPT.dup]
17
18
  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.11.0
4
+ version: 0.12.0
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: 2019-08-23 00:00:00.000000000 Z
11
+ date: 2020-06-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -74,6 +74,7 @@ extensions: []
74
74
  extra_rdoc_files: []
75
75
  files:
76
76
  - ".coveralls.yml"
77
+ - ".github/workflows/ci.yml"
77
78
  - ".gitignore"
78
79
  - ".rspec"
79
80
  - ".rubocop.yml"
@@ -90,6 +91,7 @@ files:
90
91
  - gemfiles/sidekiq_5.0.gemfile
91
92
  - gemfiles/sidekiq_5.1.gemfile
92
93
  - gemfiles/sidekiq_5.2.gemfile
94
+ - gemfiles/sidekiq_6.0.gemfile
93
95
  - lib/sidekiq/throttled.rb
94
96
  - lib/sidekiq/throttled/communicator.rb
95
97
  - lib/sidekiq/throttled/communicator/callbacks.rb
@@ -140,7 +142,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
140
142
  - !ruby/object:Gem::Version
141
143
  version: '0'
142
144
  requirements: []
143
- rubygems_version: 3.0.3
145
+ rubyforge_project:
146
+ rubygems_version: 2.7.6.2
144
147
  signing_key:
145
148
  specification_version: 4
146
149
  summary: Concurrency and threshold throttling for Sidekiq.