sidekiq-unique-jobs 7.0.4 → 7.0.9
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 +4 -4
- data/CHANGELOG.md +103 -93
- data/README.md +8 -6
- data/lib/sidekiq_unique_jobs/changelog.rb +2 -2
- data/lib/sidekiq_unique_jobs/digests.rb +2 -2
- data/lib/sidekiq_unique_jobs/lock/base_lock.rb +2 -2
- data/lib/sidekiq_unique_jobs/lock/until_and_while_executing.rb +2 -2
- data/lib/sidekiq_unique_jobs/lock_config.rb +5 -1
- data/lib/sidekiq_unique_jobs/locksmith.rb +10 -8
- data/lib/sidekiq_unique_jobs/logging.rb +31 -11
- data/lib/sidekiq_unique_jobs/lua/shared/_find_digest_in_process_set.lua +1 -1
- data/lib/sidekiq_unique_jobs/orphans/ruby_reaper.rb +14 -2
- data/lib/sidekiq_unique_jobs/redis/entity.rb +7 -1
- data/lib/sidekiq_unique_jobs/sidekiq_unique_jobs.rb +20 -1
- data/lib/sidekiq_unique_jobs/sidekiq_worker_methods.rb +1 -4
- data/lib/sidekiq_unique_jobs/version.rb +1 -1
- data/lib/sidekiq_unique_jobs/web.rb +11 -4
- data/lib/sidekiq_unique_jobs/web/helpers.rb +5 -5
- data/lib/sidekiq_unique_jobs/web/views/_paging.erb +4 -4
- data/lib/sidekiq_unique_jobs/web/views/changelogs.erb +1 -1
- data/lib/sidekiq_unique_jobs/web/views/locks.erb +17 -15
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 935557852bee165ab73356ac080c4ac1cddcb218db752703f40d016dc9aadf01
|
4
|
+
data.tar.gz: 47e95549bc6c9b7784619c971c727a536abc0db2b5aac69aeb6a1f9de7cce4e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e42873abe4b4e8b6628f381c8c2047827e9564a98cbdbacb3117486236d72e8348d1b7fe6a53d6afe99da4d084fed2b04437cad6d1f6e559100de4d624ba5482
|
7
|
+
data.tar.gz: 3a6577108d8f90f6bea64d825b54c253ffc150969930fa723acad63db98dfe7c3cf425d42f6902e82b71a8dc483ba588afc0fa3549d8066c8bc73ddf9522a108
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,70 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [v7.0.8](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v7.0.8) (2021-04-14)
|
4
|
+
|
5
|
+
[Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v7.0.7...v7.0.8)
|
6
|
+
|
7
|
+
**Implemented enhancements:**
|
8
|
+
|
9
|
+
- Lock performance [\#595](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/595) ([mhenrixon](https://github.com/mhenrixon))
|
10
|
+
- Allow and test ruby 3.0 [\#587](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/587) ([mhenrixon](https://github.com/mhenrixon))
|
11
|
+
|
12
|
+
**Closed issues:**
|
13
|
+
|
14
|
+
- Question: where do orphaned locks come from? [\#592](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/592)
|
15
|
+
- upgrade\_v6\_lock : ERR wrong number of arguments for 'hmset' command [\#591](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/591)
|
16
|
+
|
17
|
+
**Merged pull requests:**
|
18
|
+
|
19
|
+
- Fix uniqueness examples url in documentation [\#596](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/596) ([sampatbadhe](https://github.com/sampatbadhe))
|
20
|
+
|
21
|
+
## [v7.0.7](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v7.0.7) (2021-03-19)
|
22
|
+
|
23
|
+
[Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v7.0.6...v7.0.7)
|
24
|
+
|
25
|
+
**Fixed bugs:**
|
26
|
+
|
27
|
+
- Web filter param not working in pagination [\#584](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/584) ([mhenrixon](https://github.com/mhenrixon))
|
28
|
+
|
29
|
+
## [v7.0.6](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v7.0.6) (2021-03-19)
|
30
|
+
|
31
|
+
[Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v7.0.5...v7.0.6)
|
32
|
+
|
33
|
+
**Fixed bugs:**
|
34
|
+
|
35
|
+
- Deprecation warning for redis behaviour change in 5.0 [\#579](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/579)
|
36
|
+
- Consider a match only when both values present [\#586](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/586) ([mhenrixon](https://github.com/mhenrixon))
|
37
|
+
|
38
|
+
**Closed issues:**
|
39
|
+
|
40
|
+
- Reaper: undefined method `delete\_suffix' for nil:NilClass [\#585](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/585)
|
41
|
+
|
42
|
+
## [v7.0.5](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v7.0.5) (2021-03-18)
|
43
|
+
|
44
|
+
[Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v7.0.4...v7.0.5)
|
45
|
+
|
46
|
+
**Implemented enhancements:**
|
47
|
+
|
48
|
+
- Improve compatibility with redis-namespace [\#581](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/581) ([Wolfer](https://github.com/Wolfer))
|
49
|
+
|
50
|
+
**Fixed bugs:**
|
51
|
+
|
52
|
+
- RubyReaper treats runtime lock as orphan and delete it [\#580](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/580)
|
53
|
+
- Prefer conn.exists? when possible [\#583](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/583) ([mhenrixon](https://github.com/mhenrixon))
|
54
|
+
- Don't reap :RUN keys when active [\#582](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/582) ([mhenrixon](https://github.com/mhenrixon))
|
55
|
+
|
56
|
+
**Closed issues:**
|
57
|
+
|
58
|
+
- redis-namespace asks to use admistrative commands directly [\#578](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/578)
|
59
|
+
|
60
|
+
## [v7.0.4](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v7.0.4) (2021-02-17)
|
61
|
+
|
62
|
+
[Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v7.0.3...v7.0.4)
|
63
|
+
|
64
|
+
**Fixed bugs:**
|
65
|
+
|
66
|
+
- Fix uninitialized scheduled task [\#577](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/577) ([ArturT](https://github.com/ArturT))
|
67
|
+
|
3
68
|
## [v7.0.3](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v7.0.3) (2021-02-17)
|
4
69
|
|
5
70
|
[Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v7.0.2...v7.0.3)
|
@@ -29,6 +94,7 @@
|
|
29
94
|
- Jobs executing and immediately returning [\#418](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/418)
|
30
95
|
- until\_and\_while\_executing + sidekiq retry mechanism [\#395](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/395)
|
31
96
|
- Failed jobs waiting to be retried are not considered when fetching uniqueness [\#394](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/394)
|
97
|
+
- Fix that :PRIMED keys are seemingly not removed [\#574](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/574) ([mhenrixon](https://github.com/mhenrixon))
|
32
98
|
|
33
99
|
**Closed issues:**
|
34
100
|
|
@@ -74,7 +140,6 @@
|
|
74
140
|
|
75
141
|
- Race condition in ruby reaper [\#559](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/559)
|
76
142
|
- Fix until and while executed and improve documentation [\#397](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/397)
|
77
|
-
- Fix that :PRIMED keys are seemingly not removed [\#574](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/574) ([mhenrixon](https://github.com/mhenrixon))
|
78
143
|
- Fix race condition to avoid reaping active jobs [\#563](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/563) ([mhenrixon](https://github.com/mhenrixon))
|
79
144
|
|
80
145
|
**Closed issues:**
|
@@ -101,7 +166,7 @@
|
|
101
166
|
**Fixed bugs:**
|
102
167
|
|
103
168
|
- lock\_args does not work when you define the lock\_args argument and default lock\_args function at the same time. [\#548](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/548)
|
104
|
-
- incorrect `:
|
169
|
+
- incorrect `:while_executing` behavior [\#432](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/432)
|
105
170
|
- Fix active check for the worker hash [\#558](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/558) ([mhenrixon](https://github.com/mhenrixon))
|
106
171
|
- Prefer lock\_prefix not unique\_prefix [\#554](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/554) ([mhenrixon](https://github.com/mhenrixon))
|
107
172
|
- Fix issue 432 [\#552](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/552) ([mhenrixon](https://github.com/mhenrixon))
|
@@ -120,7 +185,7 @@
|
|
120
185
|
|
121
186
|
**Closed issues:**
|
122
187
|
|
123
|
-
- Documentation incorrect for `
|
188
|
+
- Documentation incorrect for `delete_by_digest` [\#547](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/547)
|
124
189
|
- Locked jobs after kill -9 with while\_executing lock [\#546](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/546)
|
125
190
|
|
126
191
|
## [v7.0.0.beta26](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v7.0.0.beta26) (2020-10-28)
|
@@ -140,15 +205,6 @@
|
|
140
205
|
|
141
206
|
[Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v7.0.0.beta25...v6.0.25)
|
142
207
|
|
143
|
-
**Implemented enhancements:**
|
144
|
-
|
145
|
-
- Support apartment [\#541](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/541) ([mhenrixon](https://github.com/mhenrixon))
|
146
|
-
- Support both instance method and class method [\#528](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/528) ([mhenrixon](https://github.com/mhenrixon))
|
147
|
-
|
148
|
-
**Fixed bugs:**
|
149
|
-
|
150
|
-
- Fix 532 [\#549](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/549) ([mhenrixon](https://github.com/mhenrixon))
|
151
|
-
|
152
208
|
## [v7.0.0.beta25](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v7.0.0.beta25) (2020-10-26)
|
153
209
|
|
154
210
|
[Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v7.0.0.beta24...v7.0.0.beta25)
|
@@ -197,16 +253,11 @@
|
|
197
253
|
**Fixed bugs:**
|
198
254
|
|
199
255
|
- Ruby reaper incorrectly checks active jobs — removes every active lock as result [\#517](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/517)
|
200
|
-
- Backport \#465 to 6.x series [\#520](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/520) ([replaid](https://github.com/replaid))
|
201
256
|
|
202
257
|
## [v7.0.0.beta22](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v7.0.0.beta22) (2020-06-12)
|
203
258
|
|
204
259
|
[Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v7.0.0.beta21...v7.0.0.beta22)
|
205
260
|
|
206
|
-
**Implemented enhancements:**
|
207
|
-
|
208
|
-
- Move dev-gems from gemspec to gemfile [\#512](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/512) ([mhenrixon](https://github.com/mhenrixon))
|
209
|
-
|
210
261
|
**Fixed bugs:**
|
211
262
|
|
212
263
|
- Infinite loop in ruby reaper [\#515](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/515)
|
@@ -219,6 +270,7 @@
|
|
219
270
|
**Implemented enhancements:**
|
220
271
|
|
221
272
|
- Move gems to gemfile [\#513](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/513) ([mhenrixon](https://github.com/mhenrixon))
|
273
|
+
- Move dev-gems from gemspec to gemfile [\#512](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/512) ([mhenrixon](https://github.com/mhenrixon))
|
222
274
|
|
223
275
|
**Fixed bugs:**
|
224
276
|
|
@@ -274,21 +326,17 @@
|
|
274
326
|
|
275
327
|
**Fixed bugs:**
|
276
328
|
|
277
|
-
- Deprecate configuration options with `
|
329
|
+
- Deprecate configuration options with `default_` [\#504](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/504) ([mhenrixon](https://github.com/mhenrixon))
|
278
330
|
- Fix access to both server and client conflict [\#503](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/503) ([mhenrixon](https://github.com/mhenrixon))
|
279
331
|
|
280
332
|
**Closed issues:**
|
281
333
|
|
282
|
-
- V7 Beta 15 `
|
334
|
+
- V7 Beta 15 `on_conflict:` with Hash does not work on server [\#499](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/499)
|
283
335
|
|
284
336
|
## [v6.0.22](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v6.0.22) (2020-04-13)
|
285
337
|
|
286
338
|
[Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v7.0.0.beta15...v6.0.22)
|
287
339
|
|
288
|
-
**Fixed bugs:**
|
289
|
-
|
290
|
-
- \[LockType\] Allow overwriting default lock type at item level [\#497](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/497) ([EmmN](https://github.com/EmmN))
|
291
|
-
|
292
340
|
## [v7.0.0.beta15](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v7.0.0.beta15) (2020-04-10)
|
293
341
|
|
294
342
|
[Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v7.0.0.beta14...v7.0.0.beta15)
|
@@ -300,7 +348,7 @@
|
|
300
348
|
|
301
349
|
**Fixed bugs:**
|
302
350
|
|
303
|
-
- V7 - `
|
351
|
+
- V7 - `on_conflict:` no longer accepts a Hash [\#495](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/495)
|
304
352
|
- Brpoplpush::RedisScript::LuaError: WRONGTYPE Operation against a key holding the wrong kind of value [\#491](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/491)
|
305
353
|
- Lua script bug [\#489](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/489)
|
306
354
|
- Reaper will delete locks for running jobs [\#488](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/488)
|
@@ -320,10 +368,6 @@
|
|
320
368
|
|
321
369
|
[Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v7.0.0.beta13...v6.0.21)
|
322
370
|
|
323
|
-
**Fixed bugs:**
|
324
|
-
|
325
|
-
- Use thread-safe digest creation mechanism [\#484](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/484) ([mhenrixon](https://github.com/mhenrixon))
|
326
|
-
|
327
371
|
## [v7.0.0.beta13](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v7.0.0.beta13) (2020-03-26)
|
328
372
|
|
329
373
|
[Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v7.0.0.beta12...v7.0.0.beta13)
|
@@ -354,10 +398,6 @@
|
|
354
398
|
- Please keep some recent versions on rubygems.org [\#478](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/478)
|
355
399
|
- validate\_worker! throws error [\#466](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/466)
|
356
400
|
|
357
|
-
**Merged pull requests:**
|
358
|
-
|
359
|
-
- Allow v7 configuration to work [\#479](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/479) ([mhenrixon](https://github.com/mhenrixon))
|
360
|
-
|
361
401
|
## [v7.0.0.beta11](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v7.0.0.beta11) (2020-03-21)
|
362
402
|
|
363
403
|
[Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v7.0.0.beta10...v7.0.0.beta11)
|
@@ -375,6 +415,7 @@
|
|
375
415
|
- Rename remaining unique\_\* keys to lock\_\* [\#475](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/475) ([mhenrixon](https://github.com/mhenrixon))
|
376
416
|
- Split calculator into two separate [\#474](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/474) ([mhenrixon](https://github.com/mhenrixon))
|
377
417
|
- Prepare for improving tests [\#473](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/473) ([mhenrixon](https://github.com/mhenrixon))
|
418
|
+
- Update gemspec: thor [\#465](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/465) ([masawo](https://github.com/masawo))
|
378
419
|
|
379
420
|
**Fixed bugs:**
|
380
421
|
|
@@ -390,11 +431,6 @@
|
|
390
431
|
|
391
432
|
[Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v7.0.0.beta9...v6.0.19)
|
392
433
|
|
393
|
-
**Fixed bugs:**
|
394
|
-
|
395
|
-
- Fix access to lock [\#476](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/476) ([mhenrixon](https://github.com/mhenrixon))
|
396
|
-
- Backport v7 fix for conflicts [\#461](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/461) ([mhenrixon](https://github.com/mhenrixon))
|
397
|
-
|
398
434
|
## [v7.0.0.beta9](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v7.0.0.beta9) (2019-12-04)
|
399
435
|
|
400
436
|
[Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v7.0.0.beta8...v7.0.0.beta9)
|
@@ -406,7 +442,7 @@
|
|
406
442
|
|
407
443
|
**Closed issues:**
|
408
444
|
|
409
|
-
- until\_and\_while\_executing with sidekiq pro `
|
445
|
+
- until\_and\_while\_executing with sidekiq pro `reliable_scheduler!` [\#411](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/411)
|
410
446
|
|
411
447
|
## [v7.0.0.beta8](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v7.0.0.beta8) (2019-11-28)
|
412
448
|
|
@@ -415,12 +451,11 @@
|
|
415
451
|
**Implemented enhancements:**
|
416
452
|
|
417
453
|
- Allow worker to configure client and server strategies separately [\#402](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/402)
|
418
|
-
- Update gemspec: thor [\#465](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/465) ([masawo](https://github.com/masawo))
|
419
454
|
- Separate client and server on\_conflict [\#462](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/462) ([mhenrixon](https://github.com/mhenrixon))
|
420
455
|
|
421
456
|
**Fixed bugs:**
|
422
457
|
|
423
|
-
- `
|
458
|
+
- `while_executing` has problems at low concurrency [\#384](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/384)
|
424
459
|
- lock: :until\_and\_while\_executing not working for scheduled jobs [\#334](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/334)
|
425
460
|
|
426
461
|
**Closed issues:**
|
@@ -457,7 +492,6 @@
|
|
457
492
|
**Fixed bugs:**
|
458
493
|
|
459
494
|
- Jobs not pushed when using sidekiq-status [\#412](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/412)
|
460
|
-
- Fix sidekiq options [\#458](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/458) ([mhenrixon](https://github.com/mhenrixon))
|
461
495
|
|
462
496
|
**Closed issues:**
|
463
497
|
|
@@ -487,18 +521,10 @@
|
|
487
521
|
|
488
522
|
[Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v6.0.16...v6.0.17)
|
489
523
|
|
490
|
-
**Fixed bugs:**
|
491
|
-
|
492
|
-
- Allow redis namespace to work with deletion [\#451](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/451) ([mhenrixon](https://github.com/mhenrixon))
|
493
|
-
|
494
524
|
## [v6.0.16](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v6.0.16) (2019-11-25)
|
495
525
|
|
496
526
|
[Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v7.0.0.beta4...v6.0.16)
|
497
527
|
|
498
|
-
**Fixed bugs:**
|
499
|
-
|
500
|
-
- Ensure runtime locks are removed [\#447](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/447) ([mhenrixon](https://github.com/mhenrixon))
|
501
|
-
|
502
528
|
## [v7.0.0.beta4](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v7.0.0.beta4) (2019-11-25)
|
503
529
|
|
504
530
|
[Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v7.0.0.beta3...v7.0.0.beta4)
|
@@ -539,7 +565,7 @@
|
|
539
565
|
|
540
566
|
**Closed issues:**
|
541
567
|
|
542
|
-
- incorrect `:
|
568
|
+
- incorrect `:until_and_while_executing` behavior [\#424](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/424)
|
543
569
|
|
544
570
|
## [v7.0.0.beta1](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v7.0.0.beta1) (2019-10-07)
|
545
571
|
|
@@ -577,14 +603,11 @@
|
|
577
603
|
**Implemented enhancements:**
|
578
604
|
|
579
605
|
- Lock both worker and queue [\#274](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/274)
|
580
|
-
- Copy working setup from master [\#420](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/420) ([mhenrixon](https://github.com/mhenrixon))
|
581
606
|
|
582
607
|
**Fixed bugs:**
|
583
608
|
|
584
609
|
- Duplicate job was pushed \( v6.0.13 \) [\#414](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/414)
|
585
610
|
- Constant SidekiqUniqueJobs::Web::Digests not found [\#396](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/396)
|
586
|
-
- Include redis directory [\#430](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/430) ([mhenrixon](https://github.com/mhenrixon))
|
587
|
-
- Fix v6 [\#428](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/428) ([mhenrixon](https://github.com/mhenrixon))
|
588
611
|
|
589
612
|
**Closed issues:**
|
590
613
|
|
@@ -610,7 +633,7 @@
|
|
610
633
|
|
611
634
|
**Closed issues:**
|
612
635
|
|
613
|
-
- Unique args in combination with sidekiq cron contains
|
636
|
+
- Unique args in combination with sidekiq cron contains `_aj_symbol_keys` [\#363](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/363)
|
614
637
|
- Low quality piece of shit [\#360](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/360)
|
615
638
|
- Passthrough has been deprecated and will be removed in redis-namespace 2.0 [\#338](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/338)
|
616
639
|
|
@@ -639,6 +662,7 @@
|
|
639
662
|
- Version 6: lets you schedule job with missing arguments [\#351](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/351)
|
640
663
|
- Version 6 Ignores Jobs Enqueued in Version 5 [\#345](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/345)
|
641
664
|
- Job will not enqueue even with no existing match [\#342](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/342)
|
665
|
+
- Convert v5 locks when needed [\#375](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/375) ([mhenrixon](https://github.com/mhenrixon))
|
642
666
|
|
643
667
|
**Closed issues:**
|
644
668
|
|
@@ -672,10 +696,6 @@
|
|
672
696
|
- John denisov add delete all button to web [\#370](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/370) ([mhenrixon](https://github.com/mhenrixon))
|
673
697
|
- Various upgrades [\#366](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/366) ([mhenrixon](https://github.com/mhenrixon))
|
674
698
|
|
675
|
-
**Fixed bugs:**
|
676
|
-
|
677
|
-
- Convert v5 locks when needed [\#375](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/375) ([mhenrixon](https://github.com/mhenrixon))
|
678
|
-
|
679
699
|
## [v6.0.8](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v6.0.8) (2019-01-10)
|
680
700
|
|
681
701
|
[Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v6.0.7...v6.0.8)
|
@@ -702,7 +722,6 @@
|
|
702
722
|
**Implemented enhancements:**
|
703
723
|
|
704
724
|
- More integration tests [\#329](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/329) ([mhenrixon](https://github.com/mhenrixon))
|
705
|
-
- Internal refactoring [\#318](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/318) ([mhenrixon](https://github.com/mhenrixon))
|
706
725
|
|
707
726
|
**Fixed bugs:**
|
708
727
|
|
@@ -719,6 +738,7 @@
|
|
719
738
|
|
720
739
|
- Do not build keys on lua scripts [\#348](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/348) ([pacoguzman](https://github.com/pacoguzman))
|
721
740
|
- fix CHANGELOG syntax [\#344](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/344) ([timoschilling](https://github.com/timoschilling))
|
741
|
+
- Define Config class inside SidekiqUniqueJobs module [\#343](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/343) ([Slike9](https://github.com/Slike9))
|
722
742
|
- fix readme testing section [\#333](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/333) ([edmartins](https://github.com/edmartins))
|
723
743
|
- Fix typo in documentation \[ci-skip\] [\#327](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/327) ([mhenrixon](https://github.com/mhenrixon))
|
724
744
|
|
@@ -726,10 +746,6 @@
|
|
726
746
|
|
727
747
|
[Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v6.0.6...v5.0.11)
|
728
748
|
|
729
|
-
**Fixed bugs:**
|
730
|
-
|
731
|
-
- Always Remove Job ID from uniquejobs Hash [\#347](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/347) ([chadrschroeder](https://github.com/chadrschroeder))
|
732
|
-
|
733
749
|
**Closed issues:**
|
734
750
|
|
735
751
|
- concurrent-ruby 1.1.1 is causing this gem to break [\#340](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/340)
|
@@ -740,10 +756,6 @@
|
|
740
756
|
- Confused with UntilExecuted documenation [\#326](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/326)
|
741
757
|
- Job never requeued after raising unhandled error with until\_and\_while\_executing? [\#322](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/322)
|
742
758
|
|
743
|
-
**Merged pull requests:**
|
744
|
-
|
745
|
-
- Define Config class inside SidekiqUniqueJobs module [\#343](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/343) ([Slike9](https://github.com/Slike9))
|
746
|
-
|
747
759
|
## [v6.0.6](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v6.0.6) (2018-08-09)
|
748
760
|
|
749
761
|
[Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v6.0.5...v6.0.6)
|
@@ -751,6 +763,7 @@
|
|
751
763
|
**Implemented enhancements:**
|
752
764
|
|
753
765
|
- Adds coverage for job retries [\#321](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/321) ([mhenrixon](https://github.com/mhenrixon))
|
766
|
+
- Internal refactoring [\#318](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/318) ([mhenrixon](https://github.com/mhenrixon))
|
754
767
|
|
755
768
|
**Closed issues:**
|
756
769
|
|
@@ -853,10 +866,6 @@
|
|
853
866
|
- Document code [\#296](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/296) ([mhenrixon](https://github.com/mhenrixon))
|
854
867
|
- Rename to `unique:` to `lock:` [\#295](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/295) ([mhenrixon](https://github.com/mhenrixon))
|
855
868
|
|
856
|
-
**Fixed bugs:**
|
857
|
-
|
858
|
-
- Don't unlock when worker raises an error [\#290](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/290) ([mhenrixon](https://github.com/mhenrixon))
|
859
|
-
|
860
869
|
**Closed issues:**
|
861
870
|
|
862
871
|
- Unique Job not work while play with crontab [\#294](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/294)
|
@@ -871,6 +880,10 @@
|
|
871
880
|
|
872
881
|
[Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v6.0.0.rc5...v6.0.0.rc6)
|
873
882
|
|
883
|
+
**Fixed bugs:**
|
884
|
+
|
885
|
+
- Don't unlock when worker raises an error [\#290](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/290) ([mhenrixon](https://github.com/mhenrixon))
|
886
|
+
|
874
887
|
**Closed issues:**
|
875
888
|
|
876
889
|
- Locking with retries [\#289](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/289)
|
@@ -904,7 +917,6 @@
|
|
904
917
|
**Fixed bugs:**
|
905
918
|
|
906
919
|
- Fix waiting for locks [\#284](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/284) ([mhenrixon](https://github.com/mhenrixon))
|
907
|
-
- Drop jobs hash [\#282](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/282) ([mhenrixon](https://github.com/mhenrixon))
|
908
920
|
|
909
921
|
## [v6.0.0.rc2](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v6.0.0.rc2) (2018-06-26)
|
910
922
|
|
@@ -921,6 +933,7 @@
|
|
921
933
|
- Duplicate jobs getting created [\#257](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/257)
|
922
934
|
- Multiple non-unique jobs with until\_executed? [\#255](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/255)
|
923
935
|
- :until\_executing not unlocking when starting to run [\#245](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/245)
|
936
|
+
- Drop jobs hash [\#282](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/282) ([mhenrixon](https://github.com/mhenrixon))
|
924
937
|
|
925
938
|
**Closed issues:**
|
926
939
|
|
@@ -962,13 +975,6 @@
|
|
962
975
|
- Code smells [\#275](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/275) ([mhenrixon](https://github.com/mhenrixon))
|
963
976
|
- Reject while scheduling [\#273](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/273) ([mhenrixon](https://github.com/mhenrixon))
|
964
977
|
- Improve testing [\#272](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/272) ([mhenrixon](https://github.com/mhenrixon))
|
965
|
-
|
966
|
-
## [v6.0.0.beta](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v6.0.0.beta) (2018-06-17)
|
967
|
-
|
968
|
-
[Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v5.0.10...v6.0.0.beta)
|
969
|
-
|
970
|
-
**Implemented enhancements:**
|
971
|
-
|
972
978
|
- Until and while executing [\#271](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/271) ([mhenrixon](https://github.com/mhenrixon))
|
973
979
|
- Solidify master [\#270](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/270) ([mhenrixon](https://github.com/mhenrixon))
|
974
980
|
- Minor adjustments [\#268](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/268) ([mhenrixon](https://github.com/mhenrixon))
|
@@ -979,25 +985,29 @@
|
|
979
985
|
|
980
986
|
- Allow `jobs keys` to default to listing all keys [\#252](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/252) ([soundasleep](https://github.com/soundasleep))
|
981
987
|
|
988
|
+
**Merged pull requests:**
|
989
|
+
|
990
|
+
- Improve documentation [\#269](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/269) ([mhenrixon](https://github.com/mhenrixon))
|
991
|
+
- Remove unnecessary monkey patches for String [\#262](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/262) ([zormandi](https://github.com/zormandi))
|
992
|
+
- README \> While Executing: remove unnecessary word [\#260](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/260) ([TimCannady](https://github.com/TimCannady))
|
993
|
+
- Don't skip monkeypatches if ActiveSupport present [\#248](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/248) ([dleavitt](https://github.com/dleavitt))
|
994
|
+
- Better runtime locks [\#241](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/241) ([mhenrixon](https://github.com/mhenrixon))
|
995
|
+
|
996
|
+
## [v6.0.0.beta](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v6.0.0.beta) (2018-06-17)
|
997
|
+
|
998
|
+
[Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v5.0.10...v6.0.0.beta)
|
999
|
+
|
982
1000
|
**Closed issues:**
|
983
1001
|
|
984
1002
|
- Incomplete sentence in README [\#264](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/264)
|
985
1003
|
- ActiveJob and Sidekiq::Worker [\#259](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/259)
|
986
1004
|
- ActiveJob and Sidekiq::Worker [\#258](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/258)
|
987
|
-
- Non-unique jobs can be added even when `
|
1005
|
+
- Non-unique jobs can be added even when `sidekiq_options unique: :until_executed` [\#251](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/251)
|
988
1006
|
- Trouble with "inline" mode [\#243](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/243)
|
989
1007
|
- Sidekiq::Worker.set not working with sidekiq-unique-jobs [\#242](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/242)
|
990
1008
|
- sidekiq-unique-job with ActiveJob [\#238](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/238)
|
991
1009
|
- Deadlock using :while\_executing? [\#233](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/233)
|
992
1010
|
|
993
|
-
**Merged pull requests:**
|
994
|
-
|
995
|
-
- Improve documentation [\#269](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/269) ([mhenrixon](https://github.com/mhenrixon))
|
996
|
-
- Remove unnecessary monkey patches for String [\#262](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/262) ([zormandi](https://github.com/zormandi))
|
997
|
-
- README \> While Executing: remove unnecessary word [\#260](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/260) ([TimCannady](https://github.com/TimCannady))
|
998
|
-
- Don't skip monkeypatches if ActiveSupport present [\#248](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/248) ([dleavitt](https://github.com/dleavitt))
|
999
|
-
- Better runtime locks [\#241](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/241) ([mhenrixon](https://github.com/mhenrixon))
|
1000
|
-
|
1001
1011
|
## [v5.0.10](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v5.0.10) (2017-08-19)
|
1002
1012
|
|
1003
1013
|
[Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v5.0.9...v5.0.10)
|
@@ -1199,7 +1209,6 @@
|
|
1199
1209
|
|
1200
1210
|
- Seeing this error with latest version 4.0.12 [\#154](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/154)
|
1201
1211
|
- Unique job showing weird behavior [\#153](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/153)
|
1202
|
-
- Can't schedule a job from another job [\#151](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/151)
|
1203
1212
|
|
1204
1213
|
## [v4.0.12](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v4.0.12) (2015-12-15)
|
1205
1214
|
|
@@ -1207,8 +1216,9 @@
|
|
1207
1216
|
|
1208
1217
|
**Closed issues:**
|
1209
1218
|
|
1219
|
+
- Can't schedule a job from another job [\#151](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/151)
|
1210
1220
|
- perform\_in not working in version 4.0.9 [\#150](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/150)
|
1211
|
-
- `unique:
|
1221
|
+
- `unique: until_and_while_executing` not working as expected [\#146](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/146)
|
1212
1222
|
- while\_executing still runs duplicate tasks [\#136](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/136)
|
1213
1223
|
- Version 4 Upgrade [\#133](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/133)
|
1214
1224
|
|
@@ -1349,7 +1359,7 @@
|
|
1349
1359
|
- Testing [\#103](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/103)
|
1350
1360
|
- Active Job [\#102](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/102)
|
1351
1361
|
- Why is SidekiqUnique behaviour applied to regular Workers? [\#100](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/100)
|
1352
|
-
- Confusing behavior when trying to
|
1362
|
+
- Confusing behavior when trying to `[1,2,3].each { |n| SomeJob.perform_in(n.seconds.from_now, n) }` never running, logging as duplicate value [\#98](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/98)
|
1353
1363
|
- Scheduled jobs are not unlocked when deleted [\#97](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/97)
|
1354
1364
|
- Testing functions should be moved out of production code [\#95](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/95)
|
1355
1365
|
- Jobs can unlock mutexes they don't own [\#94](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/94)
|
@@ -1373,6 +1383,7 @@
|
|
1373
1383
|
- Throttling jobs [\#39](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/39)
|
1374
1384
|
- undefined method `get\_sidekiq\_options' for "MyScheduledWorker":String [\#27](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/27)
|
1375
1385
|
- Crash handling [\#14](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/14)
|
1386
|
+
- Missing info from README [\#6](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/6)
|
1376
1387
|
|
1377
1388
|
**Merged pull requests:**
|
1378
1389
|
|
@@ -1472,7 +1483,6 @@
|
|
1472
1483
|
- What is the use case for the uniqueness window? [\#22](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/22)
|
1473
1484
|
- clarification on unique\_args [\#20](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/20)
|
1474
1485
|
- payload\_hash staying around [\#13](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/13)
|
1475
|
-
- Missing info from README [\#6](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/6)
|
1476
1486
|
|
1477
1487
|
**Merged pull requests:**
|
1478
1488
|
|
@@ -1497,7 +1507,7 @@
|
|
1497
1507
|
|
1498
1508
|
- Make unlock/yield order configurable. [\#21](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/21) ([endofunky](https://github.com/endofunky))
|
1499
1509
|
- 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))
|
1500
|
-
- Attempt to constantize String `
|
1510
|
+
- 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))
|
1501
1511
|
- Compatibility with Sidekiq 2.12.1 Scheduled Jobs [\#16](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/16) ([lsimoneau](https://github.com/lsimoneau))
|
1502
1512
|
- 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))
|
1503
1513
|
- 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))
|
data/README.md
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
# SidekiqUniqueJobs
|
1
|
+
# SidekiqUniqueJobs
|
2
|
+
|
3
|
+
[![Join the chat at https://gitter.im/mhenrixon/sidekiq-unique-jobs](https://badges.gitter.im/mhenrixon/sidekiq-unique-jobs.svg)](https://gitter.im/mhenrixon/sidekiq-unique-jobs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) ![Build Status](https://github.com/mhenrixon/sidekiq-unique-jobs/actions/workflows/rspec.yml/badge.svg?branch=master) [![Code Climate](https://codeclimate.com/github/mhenrixon/sidekiq-unique-jobs.svg)](https://codeclimate.com/github/mhenrixon/sidekiq-unique-jobs) [![Test Coverage](https://codeclimate.com/github/mhenrixon/sidekiq-unique-jobs/badges/coverage.svg)](https://codeclimate.com/github/mhenrixon/sidekiq-unique-jobs/coverage)
|
2
4
|
|
3
5
|
<!-- MarkdownTOC -->
|
4
6
|
|
@@ -905,11 +907,11 @@ end
|
|
905
907
|
|
906
908
|
It is recommended to leave the uniqueness testing to the gem maintainers. If you care about how the gem is integration tested have a look at the following specs:
|
907
909
|
|
908
|
-
- [spec/
|
909
|
-
- [spec/
|
910
|
-
- [spec/
|
911
|
-
- [spec/
|
912
|
-
- [spec/
|
910
|
+
- [spec/sidekiq_unique_jobs/lock/until_and_while_executing_spec.rb](https://github.com/mhenrixon/sidekiq-unique-jobs/blob/master/spec/sidekiq_unique_jobs/lock/until_and_while_executing_spec.rb)
|
911
|
+
- [spec/sidekiq_unique_jobs/lock/until_executed_spec.rb](https://github.com/mhenrixon/sidekiq-unique-jobs/blob/master/spec/sidekiq_unique_jobs/lock/until_executed_spec.rb)
|
912
|
+
- [spec/sidekiq_unique_jobs/lock/until_expired_spec.rb](https://github.com/mhenrixon/sidekiq-unique-jobs/blob/master/spec/sidekiq_unique_jobs/lock/until_expired_spec.rb)
|
913
|
+
- [spec/sidekiq_unique_jobs/lock/while_executing_reject_spec.rb](https://github.com/mhenrixon/sidekiq-unique-jobs/blob/master/spec/sidekiq_unique_jobs/lock/while_executing_reject_spec.rb)
|
914
|
+
- [spec/sidekiq_unique_jobs/lock/while_executing_spec.rb](https://github.com/mhenrixon/sidekiq-unique-jobs/blob/master/spec/sidekiq_unique_jobs/lock/while_executing_spec.rb)
|
913
915
|
|
914
916
|
## Contributing
|
915
917
|
|
@@ -124,7 +124,7 @@ module SidekiqUniqueJobs
|
|
124
124
|
attr_reader :attempt
|
125
125
|
|
126
126
|
def unlock_with_callback
|
127
|
-
return log_warn("
|
127
|
+
return log_warn("Might need to be unlocked manually", item) unless unlock
|
128
128
|
|
129
129
|
callback_safely
|
130
130
|
item[JID]
|
@@ -134,7 +134,7 @@ module SidekiqUniqueJobs
|
|
134
134
|
callback&.call
|
135
135
|
item[JID]
|
136
136
|
rescue StandardError
|
137
|
-
log_warn("
|
137
|
+
log_warn("Unlocked successfully but the #after_unlock callback failed!", item)
|
138
138
|
raise
|
139
139
|
end
|
140
140
|
|
@@ -21,7 +21,7 @@ module SidekiqUniqueJobs
|
|
21
21
|
runtime_lock.execute { return yield }
|
22
22
|
end
|
23
23
|
else
|
24
|
-
log_warn
|
24
|
+
log_warn("Couldn't unlock digest: #{item[LOCK_DIGEST]}, jid: #{item[JID]}")
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
@@ -30,7 +30,7 @@ module SidekiqUniqueJobs
|
|
30
30
|
def lock_on_failure
|
31
31
|
yield
|
32
32
|
rescue Exception # rubocop:disable Lint/RescueException
|
33
|
-
log_error("Runtime lock failed to execute job, restoring server lock")
|
33
|
+
log_error("Runtime lock failed to execute job, restoring server lock", item)
|
34
34
|
lock
|
35
35
|
raise
|
36
36
|
end
|
@@ -58,7 +58,7 @@ module SidekiqUniqueJobs
|
|
58
58
|
|
59
59
|
def initialize(job_hash = {})
|
60
60
|
@type = job_hash[LOCK]&.to_sym
|
61
|
-
@worker = job_hash[CLASS]
|
61
|
+
@worker = SidekiqUniqueJobs.constantize(job_hash[CLASS])
|
62
62
|
@limit = job_hash.fetch(LOCK_LIMIT, 1)
|
63
63
|
@timeout = job_hash.fetch(LOCK_TIMEOUT, 0)
|
64
64
|
@ttl = job_hash.fetch(LOCK_TTL) { job_hash.fetch(LOCK_EXPIRATION, nil) }.to_i
|
@@ -71,6 +71,10 @@ module SidekiqUniqueJobs
|
|
71
71
|
@on_server_conflict = job_hash[ON_SERVER_CONFLICT]
|
72
72
|
end
|
73
73
|
|
74
|
+
def lock_info?
|
75
|
+
lock_info
|
76
|
+
end
|
77
|
+
|
74
78
|
#
|
75
79
|
# Indicate if timeout was set
|
76
80
|
#
|
@@ -199,7 +199,7 @@ module SidekiqUniqueJobs
|
|
199
199
|
def primed_async(conn)
|
200
200
|
return yield if Concurrent::Promises
|
201
201
|
.future(conn) { |red_con| pop_queued(red_con) }
|
202
|
-
.value(drift(config.
|
202
|
+
.value(drift(config.pttl) / 1000) # Important to reduce time spent waiting
|
203
203
|
|
204
204
|
warn_about_timeout
|
205
205
|
end
|
@@ -220,7 +220,7 @@ module SidekiqUniqueJobs
|
|
220
220
|
enqueue(conn) do
|
221
221
|
primed_sync(conn) do
|
222
222
|
locked_token = call_script(:lock, key.to_a, argv, conn)
|
223
|
-
return yield if locked_token
|
223
|
+
return yield locked_token if locked_token
|
224
224
|
end
|
225
225
|
end
|
226
226
|
end
|
@@ -235,7 +235,9 @@ module SidekiqUniqueJobs
|
|
235
235
|
# @return [Object] whatever the block returns when lock was acquired
|
236
236
|
#
|
237
237
|
def primed_sync(conn)
|
238
|
-
|
238
|
+
if (popped_jid = pop_queued(conn))
|
239
|
+
return yield popped_jid
|
240
|
+
end
|
239
241
|
|
240
242
|
warn_about_timeout
|
241
243
|
end
|
@@ -260,7 +262,7 @@ module SidekiqUniqueJobs
|
|
260
262
|
#
|
261
263
|
def brpoplpush(conn)
|
262
264
|
# passing timeout 0 to brpoplpush causes it to block indefinitely
|
263
|
-
conn.brpoplpush(key.queued, key.primed, timeout: config.timeout
|
265
|
+
conn.brpoplpush(key.queued, key.primed, timeout: config.timeout)
|
264
266
|
end
|
265
267
|
|
266
268
|
#
|
@@ -288,7 +290,7 @@ module SidekiqUniqueJobs
|
|
288
290
|
return unless queued_token && (validity >= 0 || config.pttl.zero?)
|
289
291
|
|
290
292
|
write_lock_info(conn)
|
291
|
-
yield
|
293
|
+
yield queued_token
|
292
294
|
end
|
293
295
|
|
294
296
|
#
|
@@ -299,7 +301,7 @@ module SidekiqUniqueJobs
|
|
299
301
|
# @return [void]
|
300
302
|
#
|
301
303
|
def write_lock_info(conn)
|
302
|
-
return unless config.lock_info
|
304
|
+
return unless config.lock_info?
|
303
305
|
|
304
306
|
conn.set(key.info, lock_info)
|
305
307
|
end
|
@@ -315,7 +317,7 @@ module SidekiqUniqueJobs
|
|
315
317
|
# Add 2 milliseconds to the drift to account for Redis expires
|
316
318
|
# precision, which is 1 millisecond, plus 1 millisecond min drift
|
317
319
|
# for small TTLs.
|
318
|
-
(val.
|
320
|
+
(val.to_f * CLOCK_DRIFT_FACTOR).to_f + 2
|
319
321
|
end
|
320
322
|
|
321
323
|
#
|
@@ -340,7 +342,7 @@ module SidekiqUniqueJobs
|
|
340
342
|
LIMIT => item[LOCK_LIMIT],
|
341
343
|
TIMEOUT => item[LOCK_TIMEOUT],
|
342
344
|
TTL => item[LOCK_TTL],
|
343
|
-
|
345
|
+
TYPE => config.type,
|
344
346
|
LOCK_ARGS => item[LOCK_ARGS],
|
345
347
|
TIME => now_f,
|
346
348
|
)
|
@@ -29,8 +29,9 @@ module SidekiqUniqueJobs
|
|
29
29
|
#
|
30
30
|
# @yield [String, Exception] the message or exception to use for log message
|
31
31
|
#
|
32
|
-
def log_debug(message_or_exception = nil, &block)
|
33
|
-
|
32
|
+
def log_debug(message_or_exception = nil, item = nil, &block)
|
33
|
+
message = build_message(message_or_exception, item)
|
34
|
+
logger.debug(message, &block)
|
34
35
|
nil
|
35
36
|
end
|
36
37
|
|
@@ -43,8 +44,9 @@ module SidekiqUniqueJobs
|
|
43
44
|
#
|
44
45
|
# @yield [String, Exception] the message or exception to use for log message
|
45
46
|
#
|
46
|
-
def log_info(message_or_exception = nil, &block)
|
47
|
-
|
47
|
+
def log_info(message_or_exception = nil, item = nil, &block)
|
48
|
+
message = build_message(message_or_exception, item)
|
49
|
+
logger.info(message, &block)
|
48
50
|
nil
|
49
51
|
end
|
50
52
|
|
@@ -57,8 +59,9 @@ module SidekiqUniqueJobs
|
|
57
59
|
#
|
58
60
|
# @yield [String, Exception] the message or exception to use for log message
|
59
61
|
#
|
60
|
-
def log_warn(message_or_exception = nil, &block)
|
61
|
-
|
62
|
+
def log_warn(message_or_exception = nil, item = nil, &block)
|
63
|
+
message = build_message(message_or_exception, item)
|
64
|
+
logger.warn(message, &block)
|
62
65
|
nil
|
63
66
|
end
|
64
67
|
|
@@ -71,8 +74,9 @@ module SidekiqUniqueJobs
|
|
71
74
|
#
|
72
75
|
# @yield [String, Exception] the message or exception to use for log message
|
73
76
|
#
|
74
|
-
def log_error(message_or_exception = nil, &block)
|
75
|
-
|
77
|
+
def log_error(message_or_exception = nil, item = nil, &block)
|
78
|
+
message = build_message(message_or_exception, item)
|
79
|
+
logger.error(message, &block)
|
76
80
|
nil
|
77
81
|
end
|
78
82
|
|
@@ -85,11 +89,27 @@ module SidekiqUniqueJobs
|
|
85
89
|
#
|
86
90
|
# @yield [String, Exception] the message or exception to use for log message
|
87
91
|
#
|
88
|
-
def log_fatal(message_or_exception = nil, &block)
|
89
|
-
|
92
|
+
def log_fatal(message_or_exception = nil, item = nil, &block)
|
93
|
+
message = build_message(message_or_exception, item)
|
94
|
+
logger.fatal(message, &block)
|
90
95
|
nil
|
91
96
|
end
|
92
97
|
|
98
|
+
def build_message(message_or_exception, item = nil)
|
99
|
+
return nil if message_or_exception.nil?
|
100
|
+
return message_or_exception if item.nil?
|
101
|
+
|
102
|
+
message = message_or_exception.dup
|
103
|
+
details = item.slice(LOCK, QUEUE, CLASS, JID, LOCK_DIGEST).each_with_object([]) do |(key, value), memo|
|
104
|
+
memo << "#{key}=#{value}"
|
105
|
+
end
|
106
|
+
message << " ("
|
107
|
+
message << details.join(" ")
|
108
|
+
message << ")"
|
109
|
+
|
110
|
+
message
|
111
|
+
end
|
112
|
+
|
93
113
|
#
|
94
114
|
# Wraps the middleware logic with context aware logging
|
95
115
|
#
|
@@ -172,7 +192,7 @@ module SidekiqUniqueJobs
|
|
172
192
|
end
|
173
193
|
|
174
194
|
def sidekiq_logger_context_method
|
175
|
-
logger.method(:with_context)
|
195
|
+
logger.method(:with_context) if logger_respond_to_with_context?
|
176
196
|
end
|
177
197
|
|
178
198
|
def sidekiq_logging_context_method
|
@@ -27,7 +27,7 @@ local function find_digest_in_process_set(digest, threshold)
|
|
27
27
|
else
|
28
28
|
for i = 1, #jobs, 2 do
|
29
29
|
local jobstr = jobs[i +1]
|
30
|
-
if string.find(jobstr, digest) then
|
30
|
+
if string.find(string.gsub(jobstr, ':RUN', ''), string.gsub(digest, ':RUN', '')) then
|
31
31
|
log_debug("Found digest", digest, "in:", workers_key)
|
32
32
|
found = true
|
33
33
|
break
|
@@ -10,6 +10,7 @@ module SidekiqUniqueJobs
|
|
10
10
|
# @author Mikael Henriksson <mikael@mhenrixon.com>
|
11
11
|
#
|
12
12
|
class RubyReaper < Reaper
|
13
|
+
RUN_SUFFIX = ":RUN"
|
13
14
|
#
|
14
15
|
# @!attribute [r] digests
|
15
16
|
# @return [SidekiqUniqueJobs::Digests] digest collection
|
@@ -124,7 +125,12 @@ module SidekiqUniqueJobs
|
|
124
125
|
|
125
126
|
procs.sort.each do |key|
|
126
127
|
valid, workers = conn.pipelined do
|
127
|
-
|
128
|
+
# TODO: Remove the if statement in the future
|
129
|
+
if conn.respond_to?(:exists?)
|
130
|
+
conn.exists?(key)
|
131
|
+
else
|
132
|
+
conn.exists(key)
|
133
|
+
end
|
128
134
|
conn.hgetall("#{key}:workers")
|
129
135
|
end
|
130
136
|
|
@@ -136,7 +142,7 @@ module SidekiqUniqueJobs
|
|
136
142
|
|
137
143
|
payload = safe_load_json(item[PAYLOAD])
|
138
144
|
|
139
|
-
return true if payload[LOCK_DIGEST]
|
145
|
+
return true if match?(digest, payload[LOCK_DIGEST])
|
140
146
|
return true if considered_active?(payload[CREATED_AT])
|
141
147
|
end
|
142
148
|
end
|
@@ -145,6 +151,12 @@ module SidekiqUniqueJobs
|
|
145
151
|
end
|
146
152
|
end
|
147
153
|
|
154
|
+
def match?(key_one, key_two)
|
155
|
+
return false if key_one.nil? || key_two.nil?
|
156
|
+
|
157
|
+
key_one.delete_suffix(RUN_SUFFIX) == key_two.delete_suffix(RUN_SUFFIX)
|
158
|
+
end
|
159
|
+
|
148
160
|
def considered_active?(time_f)
|
149
161
|
(Time.now - reaper_timeout).to_f < time_f
|
150
162
|
end
|
@@ -47,7 +47,13 @@ module SidekiqUniqueJobs
|
|
47
47
|
#
|
48
48
|
def exist?
|
49
49
|
redis do |conn|
|
50
|
-
|
50
|
+
# TODO: Remove the if statement in the future
|
51
|
+
value =
|
52
|
+
if conn.respond_to?(:exists?)
|
53
|
+
conn.exists?(key)
|
54
|
+
else
|
55
|
+
conn.exists(key)
|
56
|
+
end
|
51
57
|
|
52
58
|
return value if boolean?(value)
|
53
59
|
|
@@ -188,7 +188,7 @@ module SidekiqUniqueJobs
|
|
188
188
|
# @return [String] a string like `5.0.2`
|
189
189
|
#
|
190
190
|
def fetch_redis_version
|
191
|
-
|
191
|
+
Sidekiq.redis_info["redis_version"]
|
192
192
|
end
|
193
193
|
|
194
194
|
#
|
@@ -236,4 +236,23 @@ module SidekiqUniqueJobs
|
|
236
236
|
lock_config = validate_worker(options)
|
237
237
|
raise InvalidWorker, lock_config unless lock_config.errors.empty?
|
238
238
|
end
|
239
|
+
|
240
|
+
# Attempt to constantize a string worker_class argument, always
|
241
|
+
# failing back to the original argument when the constant can't be found
|
242
|
+
#
|
243
|
+
# @return [Sidekiq::Worker]
|
244
|
+
def constantize(str)
|
245
|
+
return str.class if str.is_a?(Sidekiq::Worker) # sidekiq v6.x
|
246
|
+
return str unless str.is_a?(String)
|
247
|
+
return Object.const_get(str) unless str.include?("::")
|
248
|
+
|
249
|
+
names = str.split("::")
|
250
|
+
names.shift if names.empty? || names.first.empty?
|
251
|
+
|
252
|
+
names.inject(Object) do |constant, name|
|
253
|
+
# the false flag limits search for name to under the constant namespace
|
254
|
+
# which mimics Rails' behaviour
|
255
|
+
constant.const_get(name, false)
|
256
|
+
end
|
257
|
+
end
|
239
258
|
end
|
@@ -49,10 +49,7 @@ module SidekiqUniqueJobs
|
|
49
49
|
#
|
50
50
|
# @return [Sidekiq::Worker]
|
51
51
|
def worker_class_constantize(klazz = @worker_class)
|
52
|
-
|
53
|
-
return klazz unless klazz.is_a?(String)
|
54
|
-
|
55
|
-
Object.const_get(klazz)
|
52
|
+
SidekiqUniqueJobs.constantize(klazz)
|
56
53
|
rescue NameError => ex
|
57
54
|
case ex.message
|
58
55
|
when /uninitialized constant/
|
@@ -19,8 +19,11 @@ module SidekiqUniqueJobs
|
|
19
19
|
@count = (params[:count] || 100).to_i
|
20
20
|
@current_cursor = params[:cursor]
|
21
21
|
@prev_cursor = params[:prev_cursor]
|
22
|
-
@
|
23
|
-
|
22
|
+
@total_size, @next_cursor, @changelogs = changelog.page(
|
23
|
+
cursor: @current_cursor,
|
24
|
+
pattern: @filter,
|
25
|
+
page_size: @count,
|
26
|
+
)
|
24
27
|
|
25
28
|
erb(unique_template(:changelogs))
|
26
29
|
end
|
@@ -36,8 +39,12 @@ module SidekiqUniqueJobs
|
|
36
39
|
@count = (params[:count] || 100).to_i
|
37
40
|
@current_cursor = params[:cursor]
|
38
41
|
@prev_cursor = params[:prev_cursor]
|
39
|
-
|
40
|
-
@total_size, @next_cursor, @locks = digests.page(
|
42
|
+
|
43
|
+
@total_size, @next_cursor, @locks = digests.page(
|
44
|
+
cursor: @current_cursor,
|
45
|
+
pattern: @filter,
|
46
|
+
page_size: @count,
|
47
|
+
)
|
41
48
|
|
42
49
|
erb(unique_template(:locks))
|
43
50
|
end
|
@@ -13,7 +13,9 @@ module SidekiqUniqueJobs
|
|
13
13
|
VIEW_PATH = File.expand_path("../web/views", __dir__).freeze
|
14
14
|
#
|
15
15
|
# @return [Array<String>] safe params
|
16
|
-
SAFE_CPARAMS = %w[
|
16
|
+
SAFE_CPARAMS = %w[
|
17
|
+
filter count cursor prev_cursor poll direction
|
18
|
+
].freeze
|
17
19
|
|
18
20
|
extend self
|
19
21
|
|
@@ -67,10 +69,8 @@ module SidekiqUniqueJobs
|
|
67
69
|
# @return [String] a url safe parameter string
|
68
70
|
#
|
69
71
|
def cparams(options)
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
params.merge(options).map do |key, value|
|
72
|
+
stringified_options = options.transform_keys(&:to_s)
|
73
|
+
params.merge(stringified_options).map do |key, value|
|
74
74
|
next unless SAFE_CPARAMS.include?(key)
|
75
75
|
|
76
76
|
"#{key}=#{CGI.escape(value.to_s)}"
|
@@ -1,10 +1,10 @@
|
|
1
1
|
<ul class="pagination pull-right flip">
|
2
2
|
<% if @prev_cursor %>
|
3
|
-
|
4
|
-
|
5
|
-
|
3
|
+
<li>
|
4
|
+
<a href="<%= url %>?<%= cparams(filter: @filter, cursor: @prev_cursor, prev_cursor: @next_cursor) %>">Previous <%= @count %></a>
|
5
|
+
</li>
|
6
6
|
<% end %>
|
7
7
|
<li>
|
8
|
-
<a href="<%= url %>?<%= cparams(cursor: @next_cursor, prev_cursor: @current_cursor) %>">Next <%= @count %></a>
|
8
|
+
<a href="<%= url %>?<%= cparams(filter: @filter, cursor: @next_cursor, prev_cursor: @current_cursor) %>">Next <%= @count %></a>
|
9
9
|
</li>
|
10
10
|
</ul>
|
@@ -11,7 +11,7 @@
|
|
11
11
|
<%= t('Filter') %>
|
12
12
|
</button>
|
13
13
|
</form>
|
14
|
-
<% if @locks.any? && @total_size > @count
|
14
|
+
<% if @locks.any? && @total_size > @count %>
|
15
15
|
<div class="col-sm-4">
|
16
16
|
<%= erb unique_template(:_paging), locals: { url: "#{root_path}locks" } %>
|
17
17
|
</div>
|
@@ -30,20 +30,22 @@
|
|
30
30
|
</tr>
|
31
31
|
</thead>
|
32
32
|
<% @locks.each do |lock| %>
|
33
|
-
<
|
34
|
-
<
|
35
|
-
<
|
36
|
-
<%=
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
33
|
+
<tbody>
|
34
|
+
<tr class="lock-row">
|
35
|
+
<td>
|
36
|
+
<form action="<%= root_path %>locks/<%= lock.key %>/delete" method="get">
|
37
|
+
<%= csrf_tag %>
|
38
|
+
<input name="lock" value="<%= h lock.key %>" type="hidden" />
|
39
|
+
<input class="btn btn-danger btn-xs" type="submit" name="delete" value="<%= t('Delete') %>" data-confirm="<%= t('AreYouSure') %>" />
|
40
|
+
</form>
|
41
|
+
</td>
|
42
|
+
<td><a href="<%= root_path %>locks/<%= lock.key %>"><%= lock.key %></a></td>
|
43
|
+
<td><%= lock.info["lock"] %></td>
|
44
|
+
<td><%= lock.locked.count %></td>
|
45
|
+
<td><%= safe_relative_time(lock.created_at) %></td>
|
46
|
+
</tr>
|
47
|
+
</tbody>
|
48
|
+
<% end %>
|
47
49
|
</table>
|
48
50
|
<form action="<%= root_path %>locks/delete_all" method="get">
|
49
51
|
<input class="btn btn-danger btn-xs" type="submit" name="delete_all" value="<%= t('DeleteAll') %>" data-confirm="<%= t('AreYouSure') %>" />
|
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.
|
4
|
+
version: 7.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mikael Henriksson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-04-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: brpoplpush-redis_script
|
@@ -16,7 +16,7 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.1.1
|
20
20
|
- - "<="
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: 2.0.0
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ">"
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 0.
|
29
|
+
version: 0.1.1
|
30
30
|
- - "<="
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 2.0.0
|
@@ -257,7 +257,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
257
257
|
- !ruby/object:Gem::Version
|
258
258
|
version: '0'
|
259
259
|
requirements: []
|
260
|
-
rubygems_version: 3.2.
|
260
|
+
rubygems_version: 3.2.16
|
261
261
|
signing_key:
|
262
262
|
specification_version: 4
|
263
263
|
summary: Sidekiq middleware that prevents duplicates jobs
|