sidekiq-unique-jobs 7.0.0.beta16 → 7.0.0.beta21

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of sidekiq-unique-jobs might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f290b8f99626c55f5152ecf2c15dc6776dda2090f8b1f848aefad2a08fc693b2
4
- data.tar.gz: '08e56acded9b53d7653ea4af16dd8bd767096532c72f0f1c085c14e4ffabb4b6'
3
+ metadata.gz: aa60dc35cfa347f88d50dd3b115e0313c88f150368a5052eec648f1e136c4e4e
4
+ data.tar.gz: 708a1f4191b7ec2f0a07129ce6abc8528908c2289c66cf55e9142c93b661e603
5
5
  SHA512:
6
- metadata.gz: 648e4bf89e3e4170cba81fe7bcdb68f7d15b8359dff1b0843dd5c38b0426628a4d5472f389d4f3df227a32f1cbfc8c32bc599eadfc8beca9ad4bbba27a72cab6
7
- data.tar.gz: 19a9189c6e31d870528a2995a622cf1b41c681ec12315754fa704aee1f38f1b28c8ba9a31999598c9dfa0ae531f9866ab089b3d4708c850f0ed4341c0773a957
6
+ metadata.gz: a097632a78d20a8ad3aaaf98819b18274a962965be59e3a0b3d0bd0208c47410dfc98bfd370007b35454d7a2ac3699374244d63fad3f11f549dde16998e542fc
7
+ data.tar.gz: beaa24b58dc8844aa689e108d2529f29b1390745df99687ab074e6822dad4cabb72402ae132b32307c4753551b70a5d44d1f0f475a6f64cb39a2405ecb4e9ff2
@@ -1,5 +1,63 @@
1
1
  # Changelog
2
2
 
3
+ ## [v7.0.0.beta20](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v7.0.0.beta20) (2020-06-02)
4
+
5
+ [Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v7.0.0.beta19...v7.0.0.beta20)
6
+
7
+ **Fixed bugs:**
8
+
9
+ - Reaper can't be registered again if sidekiq gets killed by SIGKILL [\#490](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/490)
10
+
11
+ **Closed issues:**
12
+
13
+ - How do I turn this on for only one job class? [\#510](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/510)
14
+
15
+ ## [v7.0.0.beta19](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v7.0.0.beta19) (2020-05-21)
16
+
17
+ [Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v7.0.0.beta18...v7.0.0.beta19)
18
+
19
+ **Fixed bugs:**
20
+
21
+ - Expire reaper when not checking in [\#508](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/508) ([mhenrixon](https://github.com/mhenrixon))
22
+
23
+ ## [v7.0.0.beta18](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v7.0.0.beta18) (2020-05-21)
24
+
25
+ [Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v7.0.0.beta17...v7.0.0.beta18)
26
+
27
+ **Fixed bugs:**
28
+
29
+ - Stringify on\_conflict hash in Job prepare method [\#507](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/507) ([jasonbekolay](https://github.com/jasonbekolay))
30
+
31
+ ## [v7.0.0.beta17](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v7.0.0.beta17) (2020-05-20)
32
+
33
+ [Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v7.0.0.beta16...v7.0.0.beta17)
34
+
35
+ **Implemented enhancements:**
36
+
37
+ - Try GitHub actions [\#505](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/505) ([mhenrixon](https://github.com/mhenrixon))
38
+
39
+ ## [v7.0.0.beta16](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v7.0.0.beta16) (2020-05-19)
40
+
41
+ [Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v6.0.22...v7.0.0.beta16)
42
+
43
+ **Fixed bugs:**
44
+
45
+ - Deep stringify worker options to account for hash in on\_conflict [\#506](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/506) ([jasonbekolay](https://github.com/jasonbekolay))
46
+ - Deprecate configuration options with `default\_` [\#504](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/504) ([mhenrixon](https://github.com/mhenrixon))
47
+ - Fix access to both server and client conflict [\#503](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/503) ([mhenrixon](https://github.com/mhenrixon))
48
+
49
+ **Closed issues:**
50
+
51
+ - V7 Beta 15 `on\_conflict:` with Hash does not work on server [\#499](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/499)
52
+
53
+ ## [v6.0.22](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v6.0.22) (2020-04-13)
54
+
55
+ [Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v7.0.0.beta15...v6.0.22)
56
+
57
+ **Fixed bugs:**
58
+
59
+ - \[LockType\] Allow overwriting default lock type at item level [\#497](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/497) ([EmmN](https://github.com/EmmN))
60
+
3
61
  ## [v7.0.0.beta15](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v7.0.0.beta15) (2020-04-10)
4
62
 
5
63
  [Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v7.0.0.beta14...v7.0.0.beta15)
@@ -155,7 +213,6 @@
155
213
  **Implemented enhancements:**
156
214
 
157
215
  - Clarify usage with global\_id and sidekiq-status [\#455](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/455) ([mhenrixon](https://github.com/mhenrixon))
158
- - Bump rails [\#450](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/450) ([mhenrixon](https://github.com/mhenrixon))
159
216
 
160
217
  **Merged pull requests:**
161
218
 
@@ -181,6 +238,7 @@
181
238
 
182
239
  **Implemented enhancements:**
183
240
 
241
+ - Bump rails [\#450](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/450) ([mhenrixon](https://github.com/mhenrixon))
184
242
  - Rename myapp [\#449](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/449) ([mhenrixon](https://github.com/mhenrixon))
185
243
  - Just to keep track of this [\#445](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/445) ([mhenrixon](https://github.com/mhenrixon))
186
244
 
@@ -492,7 +550,6 @@
492
550
  **Fixed bugs:**
493
551
 
494
552
  - Enable replace strategy [\#315](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/315) ([mhenrixon](https://github.com/mhenrixon))
495
- - Bug fixes [\#310](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/310) ([mhenrixon](https://github.com/mhenrixon))
496
553
 
497
554
  **Closed issues:**
498
555
 
@@ -509,6 +566,7 @@
509
566
  **Fixed bugs:**
510
567
 
511
568
  - Not unlocking automatically \(version 6.0.0rc5\) [\#293](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/293)
569
+ - Bug fixes [\#310](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/310) ([mhenrixon](https://github.com/mhenrixon))
512
570
 
513
571
  ## [v6.0.1](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v6.0.1) (2018-07-31)
514
572
 
@@ -1185,6 +1243,7 @@
1185
1243
  - Clarify README about unique expiration [\#36](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/36) ([spacemunkay](https://github.com/spacemunkay))
1186
1244
  - Add option to make jobs unique on all queues [\#32](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/32) ([robinmessage](https://github.com/robinmessage))
1187
1245
  - Fix homepage in gemspec [\#29](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/29) ([tmaier](https://github.com/tmaier))
1246
+ - Compatibility with Sidekiq 2.12.1 Scheduled Jobs [\#16](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/16) ([lsimoneau](https://github.com/lsimoneau))
1188
1247
 
1189
1248
  ## [v2.7.0](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v2.7.0) (2013-11-24)
1190
1249
 
@@ -1203,7 +1262,6 @@
1203
1262
  - Make unlock/yield order configurable. [\#21](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/21) ([endofunky](https://github.com/endofunky))
1204
1263
  - Rely on Sidekiq's String\#constantize extension instead of rolling our own [\#19](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/19) ([disbelief](https://github.com/disbelief))
1205
1264
  - Attempt to constantize String `worker\_class` arguments passed to client middleware [\#17](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/17) ([disbelief](https://github.com/disbelief))
1206
- - Compatibility with Sidekiq 2.12.1 Scheduled Jobs [\#16](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/16) ([lsimoneau](https://github.com/lsimoneau))
1207
1265
  - Allow worker to specify which arguments to include in uniquing hash [\#12](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/12) ([sax](https://github.com/sax))
1208
1266
  - Add support for unique when using Sidekiq's delay function [\#11](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/11) ([eduardosasso](https://github.com/eduardosasso))
1209
1267
  - Adding the unique prefix option [\#8](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/8) ([KensoDev](https://github.com/KensoDev))
@@ -40,7 +40,7 @@ module SidekiqUniqueJobs
40
40
  options[:count] = count if count
41
41
 
42
42
  redis do |conn|
43
- conn.zscan_each(key, options).to_a.map { |entry| load_json(entry[0]) }
43
+ conn.zscan_each(key, **options).to_a.map { |entry| load_json(entry[0]) }
44
44
  end
45
45
  end
46
46
 
@@ -185,25 +185,29 @@ module SidekiqUniqueJobs
185
185
  end
186
186
 
187
187
  def default_lock_ttl=(obj)
188
- warn "[DEPRECATION] `#{self.class}##{__method__}` is deprecated. Please use `#{self.class}#lock_ttl=` instead."
188
+ warn "[DEPRECATION] `#{class_name}##{__method__}` is deprecated. Please use `#{class_name}#lock_ttl=` instead."
189
189
  self.lock_ttl = obj
190
190
  end
191
191
 
192
192
  def default_lock_timeout=(obj)
193
- warn "[DEPRECATION] `#{self.class}##{__method__}` is deprecated. Please use `#{self.class}#lock_timeout=` instead."
193
+ warn "[DEPRECATION] `#{class_name}##{__method__}` is deprecated. Please use `#{class_name}#lock_timeout=` instead."
194
194
  self.lock_timeout = obj
195
195
  end
196
196
 
197
197
  def default_lock_ttl
198
- warn "[DEPRECATION] `#{self.class}##{__method__}` is deprecated. Please use `#{self.class}#lock_ttl` instead."
198
+ warn "[DEPRECATION] `#{class_name}##{__method__}` is deprecated. Please use `#{class_name}#lock_ttl` instead."
199
199
  lock_ttl
200
200
  end
201
201
 
202
202
  def default_lock_timeout
203
- warn "[DEPRECATION] `#{self.class}##{__method__}` is deprecated. Please use `#{self.class}#lock_timeout` instead."
203
+ warn "[DEPRECATION] `#{class_name}##{__method__}` is deprecated. Please use `#{class_name}#lock_timeout` instead."
204
204
  lock_timeout
205
205
  end
206
206
 
207
+ def class_name
208
+ @class_name ||= self.class.name
209
+ end
210
+
207
211
  #
208
212
  # Adds a lock type to the configuration. It will raise if the lock exists already
209
213
  #
@@ -102,7 +102,7 @@ class Hash
102
102
  result[yield(key)] = _deep_transform_keys_in_object(value, &block)
103
103
  end
104
104
  when Array
105
- object.map { |e| _deep_transform_keys_in_object(e, &block) }
105
+ object.map { |element| _deep_transform_keys_in_object(element, &block) }
106
106
  else
107
107
  object
108
108
  end
@@ -80,7 +80,7 @@ module SidekiqUniqueJobs
80
80
  options[:match] = pattern
81
81
  options[:count] = count if count
82
82
 
83
- result = redis { |conn| conn.zscan_each(key, options).to_a }
83
+ result = redis { |conn| conn.zscan_each(key, **options).to_a }
84
84
 
85
85
  result.each_with_object({}) do |entry, hash|
86
86
  hash[entry[0]] = entry[1]
@@ -10,6 +10,7 @@ module SidekiqUniqueJobs
10
10
  # Adds timeout, expiration, lock_args, lock_prefix and lock_digest to the sidekiq job hash
11
11
  # @return [Hash] the job hash
12
12
  def prepare(item)
13
+ stringify_on_conflict_hash(item)
13
14
  add_lock_timeout(item)
14
15
  add_lock_ttl(item)
15
16
  add_digest(item)
@@ -27,6 +28,13 @@ module SidekiqUniqueJobs
27
28
 
28
29
  private
29
30
 
31
+ def stringify_on_conflict_hash(item)
32
+ on_conflict = item[ON_CONFLICT]
33
+ return unless on_conflict.is_a?(Hash)
34
+
35
+ item[ON_CONFLICT] = on_conflict.deep_stringify_keys
36
+ end
37
+
30
38
  def add_lock_ttl(item)
31
39
  item[LOCK_TTL] = SidekiqUniqueJobs::LockTTL.calculate(item)
32
40
  end
@@ -63,7 +63,6 @@ module SidekiqUniqueJobs
63
63
  # @return [Array] args unfiltered when neither of the above
64
64
  def filtered_args
65
65
  return args if lock_args_disabled?
66
- return args if args.empty?
67
66
 
68
67
  json_args = Normalizer.jsonify(args)
69
68
 
@@ -10,6 +10,8 @@ module SidekiqUniqueJobs
10
10
  module Manager
11
11
  module_function
12
12
 
13
+ DRIFT_FACTOR = 0.02
14
+
13
15
  include SidekiqUniqueJobs::Connection
14
16
  include SidekiqUniqueJobs::Logging
15
17
 
@@ -56,6 +58,7 @@ module SidekiqUniqueJobs
56
58
  @task ||= Concurrent::TimerTask.new(timer_task_options) do
57
59
  with_logging_context do
58
60
  redis do |conn|
61
+ refresh_reaper_mutex
59
62
  Orphans::Reaper.call(conn)
60
63
  end
61
64
  end
@@ -117,7 +120,9 @@ module SidekiqUniqueJobs
117
120
  # @return [true, false]
118
121
  #
119
122
  def registered?
120
- redis { |conn| conn.get(UNIQUE_REAPER) }.to_i == 1
123
+ redis do |conn|
124
+ conn.get(UNIQUE_REAPER).to_i + drift_reaper_interval > current_timestamp
125
+ end
121
126
  end
122
127
 
123
128
  def disabled?
@@ -131,7 +136,17 @@ module SidekiqUniqueJobs
131
136
  # @return [void]
132
137
  #
133
138
  def register_reaper_process
134
- redis { |conn| conn.set(UNIQUE_REAPER, 1) }
139
+ redis { |conn| conn.set(UNIQUE_REAPER, current_timestamp, nx: true, ex: drift_reaper_interval) }
140
+ end
141
+
142
+ #
143
+ # Updates mutex key
144
+ #
145
+ #
146
+ # @return [void]
147
+ #
148
+ def refresh_reaper_mutex
149
+ redis { |conn| conn.set(UNIQUE_REAPER, current_timestamp, ex: drift_reaper_interval) }
135
150
  end
136
151
 
137
152
  #
@@ -143,6 +158,14 @@ module SidekiqUniqueJobs
143
158
  def unregister_reaper_process
144
159
  redis { |conn| conn.del(UNIQUE_REAPER) }
145
160
  end
161
+
162
+ def drift_reaper_interval
163
+ reaper_interval + (reaper_interval * DRIFT_FACTOR).to_i
164
+ end
165
+
166
+ def current_timestamp
167
+ Time.now.to_i
168
+ end
146
169
  end
147
170
  end
148
171
  end
@@ -157,6 +157,8 @@ module SidekiqUniqueJobs
157
157
  entries = conn.lrange(queue_key, range_start, range_end)
158
158
  page += 1
159
159
 
160
+ break if entries.empty?
161
+
160
162
  entries.each do |entry|
161
163
  yield entry
162
164
  end
@@ -46,7 +46,13 @@ module SidekiqUniqueJobs
46
46
  # @return [false] when not exists
47
47
  #
48
48
  def exist?
49
- redis { |conn| conn.exists(key) }
49
+ redis do |conn|
50
+ value = conn.exists(key)
51
+ return true if value.is_a?(TrueClass)
52
+ return false if value.is_a?(FalseClass)
53
+
54
+ value.positive?
55
+ end
50
56
  end
51
57
 
52
58
  #
@@ -16,7 +16,7 @@ module SidekiqUniqueJobs
16
16
  def worker_options
17
17
  return {} unless sidekiq_worker_class?
18
18
 
19
- worker_class.get_sidekiq_options.stringify_keys
19
+ worker_class.get_sidekiq_options.deep_stringify_keys
20
20
  end
21
21
 
22
22
  # Tests that the
@@ -126,7 +126,7 @@ module SidekiqUniqueJobs
126
126
  def batch_scan(match:, count:)
127
127
  cursor = "0"
128
128
  loop do
129
- cursor, values = conn.scan(cursor, match: match, per: count)
129
+ cursor, values = conn.scan(cursor, match: match, count: count)
130
130
  yield values
131
131
  break if cursor == "0"
132
132
  end
@@ -3,5 +3,5 @@
3
3
  module SidekiqUniqueJobs
4
4
  #
5
5
  # @return [String] the current SidekiqUniqueJobs version
6
- VERSION = "7.0.0.beta16"
6
+ VERSION = "7.0.0.beta21"
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq-unique-jobs
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.0.0.beta16
4
+ version: 7.0.0.beta21
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mikael Henriksson
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-19 00:00:00.000000000 Z
11
+ date: 2020-06-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: brpoplpush-redis_script
@@ -90,158 +90,6 @@ dependencies:
90
90
  - - "<"
91
91
  - !ruby/object:Gem::Version
92
92
  version: '2.0'
93
- - !ruby/object:Gem::Dependency
94
- name: bundler
95
- requirement: !ruby/object:Gem::Requirement
96
- requirements:
97
- - - "~>"
98
- - !ruby/object:Gem::Version
99
- version: '2.1'
100
- type: :development
101
- prerelease: false
102
- version_requirements: !ruby/object:Gem::Requirement
103
- requirements:
104
- - - "~>"
105
- - !ruby/object:Gem::Version
106
- version: '2.1'
107
- - !ruby/object:Gem::Dependency
108
- name: rack-test
109
- requirement: !ruby/object:Gem::Requirement
110
- requirements:
111
- - - ">="
112
- - !ruby/object:Gem::Version
113
- version: '1.0'
114
- - - "<"
115
- - !ruby/object:Gem::Version
116
- version: '2.0'
117
- type: :development
118
- prerelease: false
119
- version_requirements: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - ">="
122
- - !ruby/object:Gem::Version
123
- version: '1.0'
124
- - - "<"
125
- - !ruby/object:Gem::Version
126
- version: '2.0'
127
- - !ruby/object:Gem::Dependency
128
- name: rake
129
- requirement: !ruby/object:Gem::Requirement
130
- requirements:
131
- - - "~>"
132
- - !ruby/object:Gem::Version
133
- version: '13.0'
134
- type: :development
135
- prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- requirements:
138
- - - "~>"
139
- - !ruby/object:Gem::Version
140
- version: '13.0'
141
- - !ruby/object:Gem::Dependency
142
- name: rspec
143
- requirement: !ruby/object:Gem::Requirement
144
- requirements:
145
- - - "~>"
146
- - !ruby/object:Gem::Version
147
- version: '3.9'
148
- type: :development
149
- prerelease: false
150
- version_requirements: !ruby/object:Gem::Requirement
151
- requirements:
152
- - - "~>"
153
- - !ruby/object:Gem::Version
154
- version: '3.9'
155
- - !ruby/object:Gem::Dependency
156
- name: sinatra
157
- requirement: !ruby/object:Gem::Requirement
158
- requirements:
159
- - - ">="
160
- - !ruby/object:Gem::Version
161
- version: '2.0'
162
- - - "<"
163
- - !ruby/object:Gem::Version
164
- version: '3.0'
165
- type: :development
166
- prerelease: false
167
- version_requirements: !ruby/object:Gem::Requirement
168
- requirements:
169
- - - ">="
170
- - !ruby/object:Gem::Version
171
- version: '2.0'
172
- - - "<"
173
- - !ruby/object:Gem::Version
174
- version: '3.0'
175
- - !ruby/object:Gem::Dependency
176
- name: timecop
177
- requirement: !ruby/object:Gem::Requirement
178
- requirements:
179
- - - "~>"
180
- - !ruby/object:Gem::Version
181
- version: '0.9'
182
- type: :development
183
- prerelease: false
184
- version_requirements: !ruby/object:Gem::Requirement
185
- requirements:
186
- - - "~>"
187
- - !ruby/object:Gem::Version
188
- version: '0.9'
189
- - !ruby/object:Gem::Dependency
190
- name: github-markup
191
- requirement: !ruby/object:Gem::Requirement
192
- requirements:
193
- - - "~>"
194
- - !ruby/object:Gem::Version
195
- version: '3.0'
196
- type: :development
197
- prerelease: false
198
- version_requirements: !ruby/object:Gem::Requirement
199
- requirements:
200
- - - "~>"
201
- - !ruby/object:Gem::Version
202
- version: '3.0'
203
- - !ruby/object:Gem::Dependency
204
- name: github_changelog_generator
205
- requirement: !ruby/object:Gem::Requirement
206
- requirements:
207
- - - "~>"
208
- - !ruby/object:Gem::Version
209
- version: '1.14'
210
- type: :development
211
- prerelease: false
212
- version_requirements: !ruby/object:Gem::Requirement
213
- requirements:
214
- - - "~>"
215
- - !ruby/object:Gem::Version
216
- version: '1.14'
217
- - !ruby/object:Gem::Dependency
218
- name: yard
219
- requirement: !ruby/object:Gem::Requirement
220
- requirements:
221
- - - "~>"
222
- - !ruby/object:Gem::Version
223
- version: 0.9.18
224
- type: :development
225
- prerelease: false
226
- version_requirements: !ruby/object:Gem::Requirement
227
- requirements:
228
- - - "~>"
229
- - !ruby/object:Gem::Version
230
- version: 0.9.18
231
- - !ruby/object:Gem::Dependency
232
- name: gem-release
233
- requirement: !ruby/object:Gem::Requirement
234
- requirements:
235
- - - "~>"
236
- - !ruby/object:Gem::Version
237
- version: '2.0'
238
- type: :development
239
- prerelease: false
240
- version_requirements: !ruby/object:Gem::Requirement
241
- requirements:
242
- - - "~>"
243
- - !ruby/object:Gem::Version
244
- version: '2.0'
245
93
  description: |
246
94
  Prevents simultaneous Sidekiq jobs with the same unique arguments to run.
247
95
  Highly configurable to suite your specific needs.
@@ -391,8 +239,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
391
239
  - !ruby/object:Gem::Version
392
240
  version: 1.3.1
393
241
  requirements: []
394
- rubygems_version: 3.1.2
395
- signing_key:
242
+ rubygems_version: 3.1.4
243
+ signing_key:
396
244
  specification_version: 4
397
245
  summary: Sidekiq middleware that prevents duplicates jobs
398
246
  test_files: []