sidekiq-unique-jobs 6.0.13 → 6.0.16

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.

Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/lib/sidekiq_unique_jobs.rb +1 -0
  4. data/lib/sidekiq_unique_jobs/cli.rb +3 -1
  5. data/lib/sidekiq_unique_jobs/constants.rb +1 -0
  6. data/lib/sidekiq_unique_jobs/lock/until_and_while_executing.rb +20 -4
  7. data/lib/sidekiq_unique_jobs/locksmith.rb +2 -2
  8. data/lib/sidekiq_unique_jobs/logging.rb +5 -0
  9. data/lib/sidekiq_unique_jobs/middleware.rb +1 -1
  10. data/lib/sidekiq_unique_jobs/sidekiq_unique_jobs.rb +7 -3
  11. data/lib/sidekiq_unique_jobs/version.rb +1 -1
  12. data/lib/sidekiq_unique_jobs/version_check.rb +95 -0
  13. data/lib/sidekiq_unique_jobs/web.rb +4 -4
  14. data/lib/sidekiq_unique_jobs/web/helpers.rb +4 -4
  15. metadata +32 -74
  16. data/.codeclimate.yml +0 -32
  17. data/.editorconfig +0 -14
  18. data/.fasterer.yml +0 -23
  19. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -31
  20. data/.github/ISSUE_TEMPLATE/feature_request.md +0 -17
  21. data/.gitignore +0 -17
  22. data/.mdlrc +0 -1
  23. data/.reek.yml +0 -88
  24. data/.rspec +0 -2
  25. data/.rubocop.yml +0 -159
  26. data/.simplecov +0 -20
  27. data/.travis.yml +0 -57
  28. data/.yardopts +0 -1
  29. data/Appraisals +0 -33
  30. data/CODE_OF_CONDUCT.md +0 -74
  31. data/Gemfile +0 -29
  32. data/Guardfile +0 -26
  33. data/Rakefile +0 -29
  34. data/_config.yml +0 -1
  35. data/assets/unique_digests_1.png +0 -0
  36. data/assets/unique_digests_2.png +0 -0
  37. data/bin/bench +0 -36
  38. data/examples/another_unique_job.rb +0 -15
  39. data/examples/custom_queue_job.rb +0 -12
  40. data/examples/custom_queue_job_with_filter_method.rb +0 -13
  41. data/examples/custom_queue_job_with_filter_proc.rb +0 -16
  42. data/examples/expiring_job.rb +0 -12
  43. data/examples/inline_worker.rb +0 -12
  44. data/examples/just_a_worker.rb +0 -13
  45. data/examples/long_running_job.rb +0 -14
  46. data/examples/main_job.rb +0 -14
  47. data/examples/my_job.rb +0 -12
  48. data/examples/my_unique_job.rb +0 -15
  49. data/examples/my_unique_job_with_filter_method.rb +0 -21
  50. data/examples/my_unique_job_with_filter_proc.rb +0 -19
  51. data/examples/notify_worker.rb +0 -14
  52. data/examples/plain_class.rb +0 -13
  53. data/examples/simple_worker.rb +0 -15
  54. data/examples/spawn_simple_worker.rb +0 -12
  55. data/examples/test_class.rb +0 -9
  56. data/examples/unique_across_workers_job.rb +0 -20
  57. data/examples/unique_job_on_conflict_raise.rb +0 -14
  58. data/examples/unique_job_on_conflict_reject.rb +0 -14
  59. data/examples/unique_job_on_conflict_reschedule.rb +0 -14
  60. data/examples/unique_job_with_conditional_parameter.rb +0 -18
  61. data/examples/unique_job_with_filter_method.rb +0 -21
  62. data/examples/unique_job_with_nil_unique_args.rb +0 -20
  63. data/examples/unique_job_with_no_unique_args_method.rb +0 -16
  64. data/examples/unique_job_withthout_unique_args_parameter.rb +0 -18
  65. data/examples/unique_on_all_queues_job.rb +0 -16
  66. data/examples/until_and_while_executing_job.rb +0 -17
  67. data/examples/until_executed_2_job.rb +0 -24
  68. data/examples/until_executed_job.rb +0 -25
  69. data/examples/until_executing_job.rb +0 -11
  70. data/examples/until_expired_job.rb +0 -12
  71. data/examples/until_global_expired_job.rb +0 -12
  72. data/examples/while_executing_job.rb +0 -15
  73. data/examples/while_executing_reject_job.rb +0 -14
  74. data/examples/without_argument_job.rb +0 -13
  75. data/sidekiq-unique-jobs.gemspec +0 -63
  76. data/update_docs.sh +0 -37
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 75372204d0ab2439c631cf536b4e9ed87578e7117c4e2e183bff16e5d854172e
4
- data.tar.gz: 0cbf2db1b5b271102509e290439a6590dea26c25c7aaa2c7e298a38bf8fe74e3
3
+ metadata.gz: f068a7aab06c3cfd05f160b1c62075f5ad69d54e6f8868eec7724d402063b8d3
4
+ data.tar.gz: 816085f3c9e851d0666f1df0ce4b99f520fdfd7217d22bb3b0875859500bfc1e
5
5
  SHA512:
6
- metadata.gz: c0cc1a9a25f7c7cfdab463fa4ce61b75ecec7e96744ddb84f4ebc68de39dd525b4d0359ab9891a96c34bff661cd87bd5853e5f7c7d40a3c983024f54bc6388ac
7
- data.tar.gz: 3c0529e64d2bc3e40265339f16a8209b22c25bba4a6d264e341a45a0c057450b59dee0bc4b070f86df1e7174f5c6fec9c1df35cfb5bae3282b08e4aca9be2546
6
+ metadata.gz: 28be9aadb717ba765bee3ac940571756da6b6acf08381cb4174a67b5b255715e60c25db310938adaa3879993ead802b693f89886d69aaaa45c2ba83d5bd9ad5c
7
+ data.tar.gz: 391913c288892d8753d9b3ebb8da9220e4a1cad981297c7a401eb57ce2439b0257a4ee9b0f4b015b2386d3e65bbb86dc6a3e351323e13e2cebc902306f11019d
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # SidekiqUniqueJobs [![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://travis-ci.org/mhenrixon/sidekiq-unique-jobs.png?branch=master)](https://travis-ci.org/mhenrixon/sidekiq-unique-jobs) [![Code Climate](https://codeclimate.com/github/mhenrixon/sidekiq-unique-jobs.png)](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)
1
+ # SidekiqUniqueJobs [![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://travis-ci.com/mhenrixon/sidekiq-unique-jobs.svg?branch=v6.x)](https://travis-ci.com/mhenrixon/sidekiq-unique-jobs) [![Code Climate](https://codeclimate.com/github/mhenrixon/sidekiq-unique-jobs.png)](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
2
 
3
3
  <!-- MarkdownTOC -->
4
4
 
@@ -4,6 +4,7 @@ require "forwardable"
4
4
  require "concurrent/mutable_struct"
5
5
 
6
6
  require "sidekiq_unique_jobs/version"
7
+ require "sidekiq_unique_jobs/version_check"
7
8
  require "sidekiq_unique_jobs/constants"
8
9
  require "sidekiq_unique_jobs/logging"
9
10
  require "sidekiq_unique_jobs/sidekiq_worker_methods"
@@ -46,9 +46,11 @@ module SidekiqUniqueJobs
46
46
 
47
47
  no_commands do
48
48
  def console_class
49
+ return IRB if RUBY_PLATFORM == JAVA
50
+
49
51
  require "pry"
50
52
  Pry
51
- rescue LoadError
53
+ rescue LoadError, NameError
52
54
  require "irb"
53
55
  IRB
54
56
  end
@@ -9,6 +9,7 @@ module SidekiqUniqueJobs
9
9
  ARGS_KEY ||= "args"
10
10
  AT_KEY ||= "at"
11
11
  CLASS_KEY ||= "class"
12
+ JAVA ||= "java"
12
13
  JID_KEY ||= "jid"
13
14
  LOCK_EXPIRATION_KEY ||= "lock_expiration"
14
15
  LOCK_TIMEOUT_KEY ||= "lock_timeout"
@@ -16,15 +16,31 @@ module SidekiqUniqueJobs
16
16
  # Executes in the Sidekiq server process
17
17
  # @yield to the worker class perform method
18
18
  def execute
19
- return unless locked?
20
-
21
- unlock
22
- runtime_lock.execute { yield }
19
+ if unlock
20
+ lock_on_failure do
21
+ runtime_lock.execute { return yield }
22
+ end
23
+ else
24
+ log_warn "couldn't unlock digest: #{item[UNIQUE_DIGEST_KEY]} #{item[JID_KEY]}"
25
+ end
26
+ ensure
27
+ runtime_lock.delete!
23
28
  end
24
29
 
25
30
  def runtime_lock
26
31
  @runtime_lock ||= SidekiqUniqueJobs::Lock::WhileExecuting.new(item, callback, redis_pool)
27
32
  end
33
+
34
+ private
35
+
36
+ def lock_on_failure
37
+ yield
38
+ runtime_lock.delete!
39
+ rescue Exception # rubocop:disable Lint/RescueException
40
+ log_error("Failed to execute job, restoring lock")
41
+ lock
42
+ raise
43
+ end
28
44
  end
29
45
  end
30
46
  end
@@ -4,7 +4,7 @@ module SidekiqUniqueJobs
4
4
  # Lock manager class that handles all the various locks
5
5
  #
6
6
  # @author Mikael Henriksson <mikael@zoolutions.se>
7
- # rubocop:disable ClassLength
7
+ # rubocop:disable Metrics/ClassLength
8
8
  class Locksmith
9
9
  include SidekiqUniqueJobs::Connection
10
10
 
@@ -185,5 +185,5 @@ module SidekiqUniqueJobs
185
185
  redis(&:time)
186
186
  end
187
187
  end
188
- # rubocop:enable ClassLength
188
+ # rubocop:enable Metrics/ClassLength
189
189
  end
@@ -16,6 +16,7 @@ module SidekiqUniqueJobs
16
16
  # Used for compatibility with logger
17
17
  def log_debug(message_or_exception = nil, &block)
18
18
  logger.debug(message_or_exception, &block)
19
+ nil
19
20
  end
20
21
 
21
22
  # Logs a message at info level
@@ -24,6 +25,7 @@ module SidekiqUniqueJobs
24
25
  # Used for compatibility with logger
25
26
  def log_info(message_or_exception = nil, &block)
26
27
  logger.info(message_or_exception, &block)
28
+ nil
27
29
  end
28
30
 
29
31
  # Logs a message at warn level
@@ -32,6 +34,7 @@ module SidekiqUniqueJobs
32
34
  # Used for compatibility with logger
33
35
  def log_warn(message_or_exception = nil, &block)
34
36
  logger.warn(message_or_exception, &block)
37
+ nil
35
38
  end
36
39
 
37
40
  # Logs a message at error level
@@ -40,6 +43,7 @@ module SidekiqUniqueJobs
40
43
  # Used for compatibility with logger
41
44
  def log_error(message_or_exception = nil, &block)
42
45
  logger.error(message_or_exception, &block)
46
+ nil
43
47
  end
44
48
 
45
49
  # Logs a message at fatal level
@@ -48,6 +52,7 @@ module SidekiqUniqueJobs
48
52
  # Used for compatibility with logger
49
53
  def log_fatal(message_or_exception = nil, &block)
50
54
  logger.fatal(message_or_exception, &block)
55
+ nil
51
56
  end
52
57
 
53
58
  def logging_context(middleware_class, job_hash)
@@ -44,4 +44,4 @@ module SidekiqUniqueJobs
44
44
  end
45
45
  end
46
46
  end
47
- SidekiqUniqueJobs.send(:extend, SidekiqUniqueJobs::Middleware)
47
+ SidekiqUniqueJobs.extend SidekiqUniqueJobs::Middleware
@@ -34,11 +34,15 @@ module SidekiqUniqueJobs
34
34
  end
35
35
 
36
36
  # :reek:ManualDispatch
37
- def with_context(context, &block)
37
+ def with_context(context)
38
38
  if logger.respond_to?(:with_context)
39
- logger.with_context(context, &block)
39
+ logger.with_context(context) { yield }
40
+ elsif defined?(Sidekiq::Context)
41
+ Sidekiq::Context.with(context) { yield }
40
42
  elsif defined?(Sidekiq::Logging)
41
- Sidekiq::Logging.with_context(context, &block)
43
+ Sidekiq::Logging.with_context(context) { yield }
44
+ else
45
+ yield
42
46
  end
43
47
  end
44
48
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SidekiqUniqueJobs
4
- VERSION = "6.0.13"
4
+ VERSION = "6.0.16"
5
5
  end
@@ -0,0 +1,95 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SidekiqUniqueJobs
4
+ #
5
+ # Handles checking if a version is compliant with given constraint
6
+ #
7
+ # @author Mikael Henriksson <mikael@zoolutions.se>
8
+ #
9
+ class VersionCheck
10
+ PATTERN = /(?<operator1>[<>=]+)?\s?(?<version1>(\d+.?)+)(\s+&&\s+)?(?<operator2>[<>=]+)?\s?(?<version2>(\d+.?)+)?/m.freeze # rubocop:disable Metrics/LineLength
11
+
12
+ #
13
+ # Checks if a version is consrtaint is satisfied
14
+ #
15
+ # @example A satisfied constraint
16
+ # VersionCheck.satisfied?("5.0.0", ">= 4.0.0") #=> true
17
+ #
18
+ # @example An unsatisfied constraint
19
+ # VersionCheck.satisfied?("5.0.0", "<= 4.0.0") #=> false
20
+ #
21
+ #
22
+ # @param [String] version a version string `5.0.0`
23
+ # @param [String] constraint a version constraint `>= 5.0.0 <= 5.1.1`
24
+ #
25
+ # @return [<type>] <description>
26
+ #
27
+ def self.satisfied?(version, constraint)
28
+ new(version, constraint).satisfied?
29
+ end
30
+
31
+ #
32
+ # @!attribute [r] version
33
+ # @return [String] a version string `5.0.0`
34
+ attr_reader :version
35
+ #
36
+ # @!attribute [r] match
37
+ # @return [String] a version constraint `>= 5.0.0 <= 5.1.1`
38
+ attr_reader :match
39
+
40
+ #
41
+ # Initialize a new VersionCheck instance
42
+ #
43
+ # @param [String] version a version string `5.0.0`
44
+ # @param [String] constraint a version constraint `>= 5.0.0 <= 5.1.1`
45
+ #
46
+ def initialize(version, constraint)
47
+ @version = Gem::Version.new(version)
48
+ @match = PATTERN.match(constraint.to_s)
49
+
50
+ raise ArgumentError, "A version (eg. 5.0) is required to compare against" unless @version
51
+ raise ArgumentError, "At least one operator and version is required (eg. >= 5.1)" unless constraint
52
+ end
53
+
54
+ #
55
+ # Checks if all constraints were met
56
+ #
57
+ #
58
+ # @return [true,false]
59
+ #
60
+ def satisfied?
61
+ constraints.all? do |expected, operator|
62
+ compare(expected, operator)
63
+ end
64
+ end
65
+
66
+ private
67
+
68
+ def compare(expected, operator)
69
+ Gem::Version.new(version).send(operator, Gem::Version.new(expected))
70
+ end
71
+
72
+ def constraints
73
+ result = { version_one => operator_one }
74
+ result[version_two] = operator_two if version_two
75
+
76
+ result
77
+ end
78
+
79
+ def version_one
80
+ match[:version1]
81
+ end
82
+
83
+ def operator_one
84
+ match[:operator1]
85
+ end
86
+
87
+ def version_two
88
+ match[:version2]
89
+ end
90
+
91
+ def operator_two
92
+ match[:operator2]
93
+ end
94
+ end
95
+ end
@@ -26,25 +26,25 @@ module SidekiqUniqueJobs
26
26
  @current_cursor = params[:cursor]
27
27
  @prev_cursor = params[:prev_cursor]
28
28
  @total_size, @next_cursor, @unique_digests =
29
- Digests.page(pattern: @filter, cursor: @current_cursor, page_size: @count)
29
+ SidekiqUniqueJobs::Digests.page(pattern: @filter, cursor: @current_cursor, page_size: @count)
30
30
 
31
31
  erb(unique_template(:unique_digests))
32
32
  end
33
33
 
34
34
  app.get "/unique_digests/delete_all" do
35
- Digests.del(pattern: "*", count: Digests.count)
35
+ SidekiqUniqueJobs::Digests.del(pattern: "*", count: SidekiqUniqueJobs::Digests.count)
36
36
  redirect_to :unique_digests
37
37
  end
38
38
 
39
39
  app.get "/unique_digests/:digest" do
40
40
  @digest = params[:digest]
41
- @unique_keys = Util.keys("#{@digest}*", 1000)
41
+ @unique_keys = SidekiqUniqueJobs::Util.keys("#{@digest}*", 1000)
42
42
 
43
43
  erb(unique_template(:unique_digest))
44
44
  end
45
45
 
46
46
  app.get "/unique_digests/:digest/delete" do
47
- Digests.del(digest: params[:digest])
47
+ SidekiqUniqueJobs::Digests.del(digest: params[:digest])
48
48
  redirect_to :unique_digests
49
49
  end
50
50
  end
@@ -36,10 +36,10 @@ module SidekiqUniqueJobs
36
36
 
37
37
  def safe_relative_time(time)
38
38
  time = if time.is_a?(Numeric)
39
- Time.at(time)
40
- else
41
- Time.parse(time)
42
- end
39
+ Time.at(time)
40
+ else
41
+ Time.parse(time)
42
+ end
43
43
 
44
44
  relative_time(time)
45
45
  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: 6.0.13
4
+ version: 6.0.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mikael Henriksson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-14 00:00:00.000000000 Z
11
+ date: 2020-03-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -68,14 +68,14 @@ dependencies:
68
68
  name: bundler
69
69
  requirement: !ruby/object:Gem::Requirement
70
70
  requirements:
71
- - - ">="
71
+ - - "~>"
72
72
  - !ruby/object:Gem::Version
73
73
  version: '2.0'
74
74
  type: :development
75
75
  prerelease: false
76
76
  version_requirements: !ruby/object:Gem::Requirement
77
77
  requirements:
78
- - - ">="
78
+ - - "~>"
79
79
  - !ruby/object:Gem::Version
80
80
  version: '2.0'
81
81
  - !ruby/object:Gem::Dependency
@@ -84,14 +84,20 @@ dependencies:
84
84
  requirements:
85
85
  - - ">="
86
86
  - !ruby/object:Gem::Version
87
- version: '0'
87
+ version: '1.0'
88
+ - - "<"
89
+ - !ruby/object:Gem::Version
90
+ version: '2.0'
88
91
  type: :development
89
92
  prerelease: false
90
93
  version_requirements: !ruby/object:Gem::Requirement
91
94
  requirements:
92
95
  - - ">="
93
96
  - !ruby/object:Gem::Version
94
- version: '0'
97
+ version: '1.0'
98
+ - - "<"
99
+ - !ruby/object:Gem::Version
100
+ version: '2.0'
95
101
  - !ruby/object:Gem::Dependency
96
102
  name: rake
97
103
  requirement: !ruby/object:Gem::Requirement
@@ -126,14 +132,20 @@ dependencies:
126
132
  requirements:
127
133
  - - ">="
128
134
  - !ruby/object:Gem::Version
129
- version: '0'
135
+ version: '2.0'
136
+ - - "<"
137
+ - !ruby/object:Gem::Version
138
+ version: '3.0'
130
139
  type: :development
131
140
  prerelease: false
132
141
  version_requirements: !ruby/object:Gem::Requirement
133
142
  requirements:
134
143
  - - ">="
135
144
  - !ruby/object:Gem::Version
136
- version: '0'
145
+ version: '2.0'
146
+ - - "<"
147
+ - !ruby/object:Gem::Version
148
+ version: '3.0'
137
149
  - !ruby/object:Gem::Dependency
138
150
  name: timecop
139
151
  requirement: !ruby/object:Gem::Requirement
@@ -194,89 +206,30 @@ dependencies:
194
206
  name: gem-release
195
207
  requirement: !ruby/object:Gem::Requirement
196
208
  requirements:
197
- - - ">="
209
+ - - "~>"
198
210
  - !ruby/object:Gem::Version
199
211
  version: '2.0'
200
212
  type: :development
201
213
  prerelease: false
202
214
  version_requirements: !ruby/object:Gem::Requirement
203
215
  requirements:
204
- - - ">="
216
+ - - "~>"
205
217
  - !ruby/object:Gem::Version
206
218
  version: '2.0'
207
219
  description: |
208
220
  Prevents simultaneous Sidekiq jobs with the same unique arguments to run.
209
221
  Highly configurable to suite your specific needs.
210
222
  email:
211
- - mikael@zoolutions.se
223
+ - mikael@mhenrixon.com
212
224
  executables:
213
225
  - uniquejobs
214
226
  extensions: []
215
227
  extra_rdoc_files: []
216
228
  files:
217
- - ".codeclimate.yml"
218
- - ".editorconfig"
219
- - ".fasterer.yml"
220
- - ".github/ISSUE_TEMPLATE/bug_report.md"
221
- - ".github/ISSUE_TEMPLATE/feature_request.md"
222
- - ".gitignore"
223
- - ".mdlrc"
224
- - ".reek.yml"
225
- - ".rspec"
226
- - ".rubocop.yml"
227
- - ".simplecov"
228
- - ".travis.yml"
229
- - ".yardopts"
230
- - Appraisals
231
229
  - CHANGELOG.md
232
- - CODE_OF_CONDUCT.md
233
- - Gemfile
234
- - Guardfile
235
230
  - LICENSE.txt
236
231
  - README.md
237
- - Rakefile
238
- - _config.yml
239
- - assets/unique_digests_1.png
240
- - assets/unique_digests_2.png
241
- - bin/bench
242
232
  - bin/uniquejobs
243
- - examples/another_unique_job.rb
244
- - examples/custom_queue_job.rb
245
- - examples/custom_queue_job_with_filter_method.rb
246
- - examples/custom_queue_job_with_filter_proc.rb
247
- - examples/expiring_job.rb
248
- - examples/inline_worker.rb
249
- - examples/just_a_worker.rb
250
- - examples/long_running_job.rb
251
- - examples/main_job.rb
252
- - examples/my_job.rb
253
- - examples/my_unique_job.rb
254
- - examples/my_unique_job_with_filter_method.rb
255
- - examples/my_unique_job_with_filter_proc.rb
256
- - examples/notify_worker.rb
257
- - examples/plain_class.rb
258
- - examples/simple_worker.rb
259
- - examples/spawn_simple_worker.rb
260
- - examples/test_class.rb
261
- - examples/unique_across_workers_job.rb
262
- - examples/unique_job_on_conflict_raise.rb
263
- - examples/unique_job_on_conflict_reject.rb
264
- - examples/unique_job_on_conflict_reschedule.rb
265
- - examples/unique_job_with_conditional_parameter.rb
266
- - examples/unique_job_with_filter_method.rb
267
- - examples/unique_job_with_nil_unique_args.rb
268
- - examples/unique_job_with_no_unique_args_method.rb
269
- - examples/unique_job_withthout_unique_args_parameter.rb
270
- - examples/unique_on_all_queues_job.rb
271
- - examples/until_and_while_executing_job.rb
272
- - examples/until_executed_2_job.rb
273
- - examples/until_executed_job.rb
274
- - examples/until_executing_job.rb
275
- - examples/until_expired_job.rb
276
- - examples/until_global_expired_job.rb
277
- - examples/while_executing_job.rb
278
- - examples/while_executing_reject_job.rb
279
- - examples/without_argument_job.rb
280
233
  - lib/sidekiq-unique-jobs.rb
281
234
  - lib/sidekiq_unique_jobs.rb
282
235
  - lib/sidekiq_unique_jobs/cli.rb
@@ -319,6 +272,7 @@ files:
319
272
  - lib/sidekiq_unique_jobs/unlockable.rb
320
273
  - lib/sidekiq_unique_jobs/util.rb
321
274
  - lib/sidekiq_unique_jobs/version.rb
275
+ - lib/sidekiq_unique_jobs/version_check.rb
322
276
  - lib/sidekiq_unique_jobs/web.rb
323
277
  - lib/sidekiq_unique_jobs/web/helpers.rb
324
278
  - lib/sidekiq_unique_jobs/web/views/_paging.erb
@@ -333,8 +287,6 @@ files:
333
287
  - redis/lock.lua
334
288
  - redis/release_stale_locks.lua
335
289
  - redis/unlock.lua
336
- - sidekiq-unique-jobs.gemspec
337
- - update_docs.sh
338
290
  homepage: https://mhenrixon.github.io/sidekiq-unique-jobs
339
291
  licenses:
340
292
  - MIT
@@ -344,7 +296,13 @@ metadata:
344
296
  documentation_uri: https://mhenrixon.github.io/sidekiq-unique-jobs
345
297
  source_code_uri: https://github.com/mhenrixon/sidekiq-unique-jobs
346
298
  changelog_uri: https://github.com/mhenrixon/sidekiq-unique-jobs/CHANGELOG.md
347
- post_install_message:
299
+ post_install_message: |
300
+ Please either install v6.0.19 or change your `unique: :lock_type` to `lock: :lock_type`
301
+ This version will not unlock otherwise.
302
+
303
+ See: https://github.com/mhenrixon/sidekiq-unique-jobs/issues/471
304
+ And: https://github.com/mhenrixon/sidekiq-unique-jobs/pull/435
305
+ And: https://github.com/mhenrixon/sidekiq-unique-jobs/issues/471
348
306
  rdoc_options: []
349
307
  require_paths:
350
308
  - lib
@@ -359,7 +317,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
359
317
  - !ruby/object:Gem::Version
360
318
  version: '0'
361
319
  requirements: []
362
- rubygems_version: 3.0.3
320
+ rubygems_version: 3.1.2
363
321
  signing_key:
364
322
  specification_version: 4
365
323
  summary: Sidekiq middleware that prevents duplicates jobs