sidekiq-unique-jobs 7.1.12 → 7.1.13

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: 636522bb794fcb282d02d8f0978f25764dea0c0eb07a80886d88be4212094529
4
- data.tar.gz: 875231fe2ef546537ab6d152366c2555d664ca79951a4a1af563a78b7cd6efe8
3
+ metadata.gz: bd2a8c713ad1593ff340793f2cbd1d07427bbb239d3efd4cc810489f99801e8b
4
+ data.tar.gz: e33006dc4b63292e1e8cf7576d7c80d59ee077dfea852d6dbb7230afa52ed116
5
5
  SHA512:
6
- metadata.gz: db7884313d19f561be0ee68327f1068647123919450d72eee8ddba504d8105d16fa72b4930f990cc5904cea742b4307731ebdec6baeb00dc15e4271c9d8ab7d4
7
- data.tar.gz: 923268a0919c0787ee835399c1a1b01e5a98b0c103cf59faf9361bc218fa7f19a5a2f13ed84b751588f25a7ea682bae67c36c0f0e8e5a7a90b3598b4bcac82dc
6
+ metadata.gz: e0a410cd505b3ccf292ded829328fa78f7250f42a350709e88d220f2ce5ec73e7f93d7c6c6adaab7fc0ffb0c28314e3ba3ce6b6e96c02918c9a6f2d908cf31d0
7
+ data.tar.gz: 6fbbb12c4db8a91a29c5baf6cc96b208576074744d417649191b26bccc7b8069ceeddd178ecf864c5028fc35744700c7ffdf621f0a2cc8669d79c4f675a1ac54
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## [v7.1.12](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v7.1.12) (2021-12-01)
4
+
5
+ [Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v7.1.11...v7.1.12)
6
+
7
+ **Implemented enhancements:**
8
+
9
+ - Improve Ruby Reaper performance under heavy load [\#663](https://github.com/mhenrixon/sidekiq-unique-jobs/issues/663)
10
+ - Improve reaper performance under heavy load [\#666](https://github.com/mhenrixon/sidekiq-unique-jobs/pull/666) ([mhenrixon](https://github.com/mhenrixon))
11
+
3
12
  ## [v7.1.11](https://github.com/mhenrixon/sidekiq-unique-jobs/tree/v7.1.11) (2021-11-30)
4
13
 
5
14
  [Full Changelog](https://github.com/mhenrixon/sidekiq-unique-jobs/compare/v7.1.10...v7.1.11)
data/README.md CHANGED
@@ -599,7 +599,7 @@ Expected BadWorker to have valid sidekiq options but found the following problem
599
599
  If you are not using RSpec (a lot of people prefer minitest or test unit) you can do something like:
600
600
 
601
601
  ```ruby
602
- assert SidekiqUniqueJobs.validate_worker!(BadWorker.get_sidekiq_options)
602
+ assert_raise(InvalidWorker){ SidekiqUniqueJobs.validate_worker!(BadWorker.get_sidekiq_options) }
603
603
  ```
604
604
 
605
605
  ### Uniqueness
@@ -62,9 +62,9 @@ module SidekiqUniqueJobs
62
62
  #
63
63
  def page(cursor: 0, pattern: "*", page_size: 100)
64
64
  redis do |conn|
65
- total_size, result = conn.multi do
66
- conn.zcard(key)
67
- conn.zscan(key, cursor, match: pattern, count: page_size)
65
+ total_size, result = conn.multi do |pipeline|
66
+ pipeline.zcard(key)
67
+ pipeline.zscan(key, cursor, match: pattern, count: page_size)
68
68
  end
69
69
 
70
70
  [
@@ -95,9 +95,9 @@ module SidekiqUniqueJobs
95
95
  #
96
96
  def page(cursor: 0, pattern: SCAN_PATTERN, page_size: 100)
97
97
  redis do |conn|
98
- total_size, digests = conn.multi do
99
- conn.zcard(key)
100
- conn.zscan(key, cursor, match: pattern, count: page_size)
98
+ total_size, digests = conn.multi do |pipeline|
99
+ pipeline.zcard(key)
100
+ pipeline.zscan(key, cursor, match: pattern, count: page_size)
101
101
  end
102
102
 
103
103
  [
@@ -62,13 +62,13 @@ module SidekiqUniqueJobs
62
62
  #
63
63
  def lock(job_id, lock_info = {})
64
64
  redis do |conn|
65
- conn.multi do
66
- conn.set(key.digest, job_id)
67
- conn.hset(key.locked, job_id, now_f)
65
+ conn.multi do |pipeline|
66
+ pipeline.set(key.digest, job_id)
67
+ pipeline.hset(key.locked, job_id, now_f)
68
68
  info.set(lock_info)
69
- conn.zadd(key.digests, now_f, key.digest)
70
- conn.zadd(key.changelog, now_f, changelog_json(job_id, "queue.lua", "Queued"))
71
- conn.zadd(key.changelog, now_f, changelog_json(job_id, "lock.lua", "Locked"))
69
+ pipeline.zadd(key.digests, now_f, key.digest)
70
+ pipeline.zadd(key.changelog, now_f, changelog_json(job_id, "queue.lua", "Queued"))
71
+ pipeline.zadd(key.changelog, now_f, changelog_json(job_id, "lock.lua", "Locked"))
72
72
  end
73
73
  end
74
74
  end
@@ -68,7 +68,7 @@ module Sidekiq
68
68
  prepend UniqueExtension
69
69
  end
70
70
 
71
- if Sidekiq.const_defined?("JobRecord")
71
+ if Sidekiq.const_defined?(:JobRecord)
72
72
  # See Sidekiq::Api
73
73
  class JobRecord
74
74
  #
@@ -34,12 +34,22 @@ module SidekiqUniqueJobs
34
34
 
35
35
  # The hook to call after a successful unlock
36
36
  # @return [Proc]
37
- def after_unlock_hook
37
+ def after_unlock_hook # rubocop:disable Metrics/MethodLength
38
38
  lambda do
39
39
  if @worker_class.respond_to?(:after_unlock)
40
- @worker_class.after_unlock # instance method in sidekiq v6
40
+ # instance method in sidekiq v6
41
+ if @worker_class.method(:after_unlock).arity.positive? # arity check to maintain backwards compatibility
42
+ @worker_class.after_unlock(item)
43
+ else
44
+ @worker_class.after_unlock
45
+ end
41
46
  elsif worker_class.respond_to?(:after_unlock)
42
- worker_class.after_unlock # class method regardless of sidekiq version
47
+ # class method regardless of sidekiq version
48
+ if worker_class.method(:after_unlock).arity.positive? # arity check to maintain backwards compatibility
49
+ worker_class.after_unlock(item)
50
+ else
51
+ worker_class.after_unlock
52
+ end
43
53
  end
44
54
  end
45
55
  end
@@ -48,7 +48,7 @@ module SidekiqUniqueJobs
48
48
  # @return [Float]
49
49
  #
50
50
  def clock_stamp
51
- if Process.const_defined?("CLOCK_MONOTONIC")
51
+ if Process.const_defined?(:CLOCK_MONOTONIC)
52
52
  Process.clock_gettime(Process::CLOCK_MONOTONIC)
53
53
  else
54
54
  now_f
@@ -3,5 +3,5 @@
3
3
  module SidekiqUniqueJobs
4
4
  #
5
5
  # @return [String] the current SidekiqUniqueJobs version
6
- VERSION = "7.1.12"
6
+ VERSION = "7.1.13"
7
7
  end
@@ -27,7 +27,7 @@ module SidekiqUniqueJobs
27
27
  # @return [String] the file contents of the template
28
28
  #
29
29
  def unique_template(name)
30
- File.open(unique_filename(name)).read
30
+ File.read(unique_filename(name))
31
31
  end
32
32
 
33
33
  #
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.1.12
4
+ version: 7.1.13
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-12-01 00:00:00.000000000 Z
11
+ date: 2022-02-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: brpoplpush-redis_script
@@ -211,7 +211,7 @@ files:
211
211
  - lib/sidekiq_unique_jobs/web/views/lock.erb
212
212
  - lib/sidekiq_unique_jobs/web/views/locks.erb
213
213
  - lib/tasks/changelog.rake
214
- homepage: https://mhenrixon.github.io/sidekiq-unique-jobs
214
+ homepage: https://github.com/mhenrixon/sidekiq-unique-jobs
215
215
  licenses:
216
216
  - MIT
217
217
  metadata:
@@ -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.32
260
+ rubygems_version: 3.3.4
261
261
  signing_key:
262
262
  specification_version: 4
263
263
  summary: Sidekiq middleware that prevents duplicates jobs