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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/sidekiq_unique_jobs.rb +1 -0
- data/lib/sidekiq_unique_jobs/cli.rb +3 -1
- data/lib/sidekiq_unique_jobs/constants.rb +1 -0
- data/lib/sidekiq_unique_jobs/lock/until_and_while_executing.rb +20 -4
- data/lib/sidekiq_unique_jobs/locksmith.rb +2 -2
- data/lib/sidekiq_unique_jobs/logging.rb +5 -0
- data/lib/sidekiq_unique_jobs/middleware.rb +1 -1
- data/lib/sidekiq_unique_jobs/sidekiq_unique_jobs.rb +7 -3
- data/lib/sidekiq_unique_jobs/version.rb +1 -1
- data/lib/sidekiq_unique_jobs/version_check.rb +95 -0
- data/lib/sidekiq_unique_jobs/web.rb +4 -4
- data/lib/sidekiq_unique_jobs/web/helpers.rb +4 -4
- metadata +32 -74
- data/.codeclimate.yml +0 -32
- data/.editorconfig +0 -14
- data/.fasterer.yml +0 -23
- data/.github/ISSUE_TEMPLATE/bug_report.md +0 -31
- data/.github/ISSUE_TEMPLATE/feature_request.md +0 -17
- data/.gitignore +0 -17
- data/.mdlrc +0 -1
- data/.reek.yml +0 -88
- data/.rspec +0 -2
- data/.rubocop.yml +0 -159
- data/.simplecov +0 -20
- data/.travis.yml +0 -57
- data/.yardopts +0 -1
- data/Appraisals +0 -33
- data/CODE_OF_CONDUCT.md +0 -74
- data/Gemfile +0 -29
- data/Guardfile +0 -26
- data/Rakefile +0 -29
- data/_config.yml +0 -1
- data/assets/unique_digests_1.png +0 -0
- data/assets/unique_digests_2.png +0 -0
- data/bin/bench +0 -36
- data/examples/another_unique_job.rb +0 -15
- data/examples/custom_queue_job.rb +0 -12
- data/examples/custom_queue_job_with_filter_method.rb +0 -13
- data/examples/custom_queue_job_with_filter_proc.rb +0 -16
- data/examples/expiring_job.rb +0 -12
- data/examples/inline_worker.rb +0 -12
- data/examples/just_a_worker.rb +0 -13
- data/examples/long_running_job.rb +0 -14
- data/examples/main_job.rb +0 -14
- data/examples/my_job.rb +0 -12
- data/examples/my_unique_job.rb +0 -15
- data/examples/my_unique_job_with_filter_method.rb +0 -21
- data/examples/my_unique_job_with_filter_proc.rb +0 -19
- data/examples/notify_worker.rb +0 -14
- data/examples/plain_class.rb +0 -13
- data/examples/simple_worker.rb +0 -15
- data/examples/spawn_simple_worker.rb +0 -12
- data/examples/test_class.rb +0 -9
- data/examples/unique_across_workers_job.rb +0 -20
- data/examples/unique_job_on_conflict_raise.rb +0 -14
- data/examples/unique_job_on_conflict_reject.rb +0 -14
- data/examples/unique_job_on_conflict_reschedule.rb +0 -14
- data/examples/unique_job_with_conditional_parameter.rb +0 -18
- data/examples/unique_job_with_filter_method.rb +0 -21
- data/examples/unique_job_with_nil_unique_args.rb +0 -20
- data/examples/unique_job_with_no_unique_args_method.rb +0 -16
- data/examples/unique_job_withthout_unique_args_parameter.rb +0 -18
- data/examples/unique_on_all_queues_job.rb +0 -16
- data/examples/until_and_while_executing_job.rb +0 -17
- data/examples/until_executed_2_job.rb +0 -24
- data/examples/until_executed_job.rb +0 -25
- data/examples/until_executing_job.rb +0 -11
- data/examples/until_expired_job.rb +0 -12
- data/examples/until_global_expired_job.rb +0 -12
- data/examples/while_executing_job.rb +0 -15
- data/examples/while_executing_reject_job.rb +0 -14
- data/examples/without_argument_job.rb +0 -13
- data/sidekiq-unique-jobs.gemspec +0 -63
- data/update_docs.sh +0 -37
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f068a7aab06c3cfd05f160b1c62075f5ad69d54e6f8868eec7724d402063b8d3
|
4
|
+
data.tar.gz: 816085f3c9e851d0666f1df0ce4b99f520fdfd7217d22bb3b0875859500bfc1e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 28be9aadb717ba765bee3ac940571756da6b6acf08381cb4174a67b5b255715e60c25db310938adaa3879993ead802b693f89886d69aaaa45c2ba83d5bd9ad5c
|
7
|
+
data.tar.gz: 391913c288892d8753d9b3ebb8da9220e4a1cad981297c7a401eb57ce2439b0257a4ee9b0f4b015b2386d3e65bbb86dc6a3e351323e13e2cebc902306f11019d
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# SidekiqUniqueJobs [](https://gitter.im/mhenrixon/sidekiq-unique-jobs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [](https://gitter.im/mhenrixon/sidekiq-unique-jobs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [](https://travis-ci.com/mhenrixon/sidekiq-unique-jobs) [](https://codeclimate.com/github/mhenrixon/sidekiq-unique-jobs) [](https://codeclimate.com/github/mhenrixon/sidekiq-unique-jobs/coverage)
|
2
2
|
|
3
3
|
<!-- MarkdownTOC -->
|
4
4
|
|
data/lib/sidekiq_unique_jobs.rb
CHANGED
@@ -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"
|
@@ -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
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
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)
|
@@ -34,11 +34,15 @@ module SidekiqUniqueJobs
|
|
34
34
|
end
|
35
35
|
|
36
36
|
# :reek:ManualDispatch
|
37
|
-
def with_context(context
|
37
|
+
def with_context(context)
|
38
38
|
if logger.respond_to?(:with_context)
|
39
|
-
logger.with_context(context
|
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
|
43
|
+
Sidekiq::Logging.with_context(context) { yield }
|
44
|
+
else
|
45
|
+
yield
|
42
46
|
end
|
43
47
|
end
|
44
48
|
|
@@ -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
|
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.
|
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:
|
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@
|
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.
|
320
|
+
rubygems_version: 3.1.2
|
363
321
|
signing_key:
|
364
322
|
specification_version: 4
|
365
323
|
summary: Sidekiq middleware that prevents duplicates jobs
|