sidekiq-unique-jobs 6.0.13 → 6.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

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