sidekiq-unique-jobs 7.0.0.beta25 → 7.0.0
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 +99 -15
- data/README.md +192 -55
- data/lib/sidekiq-unique-jobs.rb +0 -2
- data/lib/sidekiq_unique_jobs/batch_delete.rb +1 -1
- data/lib/sidekiq_unique_jobs/changelog.rb +2 -2
- data/lib/sidekiq_unique_jobs/cli.rb +1 -1
- data/lib/sidekiq_unique_jobs/config.rb +2 -2
- data/lib/sidekiq_unique_jobs/connection.rb +1 -1
- data/lib/sidekiq_unique_jobs/constants.rb +5 -1
- data/lib/sidekiq_unique_jobs/digests.rb +2 -2
- data/lib/sidekiq_unique_jobs/exceptions.rb +9 -9
- data/lib/sidekiq_unique_jobs/job.rb +2 -2
- data/lib/sidekiq_unique_jobs/json.rb +1 -1
- data/lib/sidekiq_unique_jobs/key.rb +1 -1
- data/lib/sidekiq_unique_jobs/lock.rb +1 -1
- data/lib/sidekiq_unique_jobs/lock/base_lock.rb +1 -1
- data/lib/sidekiq_unique_jobs/lock/client_validator.rb +1 -1
- data/lib/sidekiq_unique_jobs/lock/server_validator.rb +1 -1
- data/lib/sidekiq_unique_jobs/lock/until_and_while_executing.rb +1 -1
- data/lib/sidekiq_unique_jobs/lock/until_executed.rb +1 -1
- data/lib/sidekiq_unique_jobs/lock/until_executing.rb +1 -1
- data/lib/sidekiq_unique_jobs/lock/until_expired.rb +1 -1
- data/lib/sidekiq_unique_jobs/lock/validator.rb +3 -2
- data/lib/sidekiq_unique_jobs/lock/while_executing.rb +2 -2
- data/lib/sidekiq_unique_jobs/lock/while_executing_reject.rb +1 -1
- data/lib/sidekiq_unique_jobs/lock_args.rb +5 -5
- data/lib/sidekiq_unique_jobs/lock_config.rb +3 -1
- data/lib/sidekiq_unique_jobs/lock_digest.rb +1 -1
- data/lib/sidekiq_unique_jobs/lock_info.rb +1 -1
- data/lib/sidekiq_unique_jobs/lock_timeout.rb +1 -1
- data/lib/sidekiq_unique_jobs/lock_ttl.rb +1 -1
- data/lib/sidekiq_unique_jobs/locksmith.rb +2 -2
- data/lib/sidekiq_unique_jobs/logging.rb +1 -1
- data/lib/sidekiq_unique_jobs/logging/middleware_context.rb +2 -2
- data/lib/sidekiq_unique_jobs/lua/delete_by_digest.lua +1 -1
- data/lib/sidekiq_unique_jobs/lua/lock.lua +1 -2
- data/lib/sidekiq_unique_jobs/lua/reap_orphans.lua +8 -7
- data/lib/sidekiq_unique_jobs/lua/shared/_find_digest_in_process_set.lua +9 -2
- data/lib/sidekiq_unique_jobs/middleware.rb +1 -58
- data/lib/sidekiq_unique_jobs/middleware/client.rb +1 -1
- data/lib/sidekiq_unique_jobs/middleware/server.rb +1 -1
- data/lib/sidekiq_unique_jobs/normalizer.rb +1 -1
- data/lib/sidekiq_unique_jobs/on_conflict.rb +1 -1
- data/lib/sidekiq_unique_jobs/on_conflict/log.rb +1 -1
- data/lib/sidekiq_unique_jobs/on_conflict/null_strategy.rb +1 -1
- data/lib/sidekiq_unique_jobs/on_conflict/raise.rb +1 -1
- data/lib/sidekiq_unique_jobs/on_conflict/reject.rb +1 -1
- data/lib/sidekiq_unique_jobs/on_conflict/replace.rb +10 -9
- data/lib/sidekiq_unique_jobs/on_conflict/reschedule.rb +2 -2
- data/lib/sidekiq_unique_jobs/on_conflict/strategy.rb +1 -1
- data/lib/sidekiq_unique_jobs/options_with_fallback.rb +1 -1
- data/lib/sidekiq_unique_jobs/orphans/lua_reaper.rb +2 -2
- data/lib/sidekiq_unique_jobs/orphans/manager.rb +41 -5
- data/lib/sidekiq_unique_jobs/orphans/null_reaper.rb +24 -0
- data/lib/sidekiq_unique_jobs/orphans/observer.rb +2 -2
- data/lib/sidekiq_unique_jobs/orphans/reaper.rb +15 -1
- data/lib/sidekiq_unique_jobs/orphans/ruby_reaper.rb +10 -3
- data/lib/sidekiq_unique_jobs/redis.rb +1 -1
- data/lib/sidekiq_unique_jobs/redis/entity.rb +10 -4
- data/lib/sidekiq_unique_jobs/redis/hash.rb +1 -1
- data/lib/sidekiq_unique_jobs/redis/list.rb +1 -1
- data/lib/sidekiq_unique_jobs/redis/set.rb +1 -1
- data/lib/sidekiq_unique_jobs/redis/sorted_set.rb +1 -1
- data/lib/sidekiq_unique_jobs/redis/string.rb +1 -1
- data/lib/sidekiq_unique_jobs/rspec/matchers.rb +2 -2
- data/lib/sidekiq_unique_jobs/rspec/matchers/have_valid_sidekiq_options.rb +2 -2
- data/lib/sidekiq_unique_jobs/script.rb +1 -1
- data/lib/sidekiq_unique_jobs/script/caller.rb +2 -2
- data/lib/sidekiq_unique_jobs/sidekiq_unique_ext.rb +5 -5
- data/lib/sidekiq_unique_jobs/sidekiq_unique_jobs.rb +2 -2
- data/lib/sidekiq_unique_jobs/sidekiq_worker_methods.rb +2 -2
- data/lib/sidekiq_unique_jobs/testing.rb +2 -1
- data/lib/sidekiq_unique_jobs/timing.rb +1 -1
- data/lib/sidekiq_unique_jobs/unlockable.rb +1 -1
- data/lib/sidekiq_unique_jobs/update_version.rb +1 -1
- data/lib/sidekiq_unique_jobs/upgrade_locks.rb +1 -1
- data/lib/sidekiq_unique_jobs/version.rb +1 -1
- data/lib/sidekiq_unique_jobs/version_check.rb +1 -1
- data/lib/sidekiq_unique_jobs/web.rb +8 -9
- data/lib/sidekiq_unique_jobs/web/helpers.rb +1 -1
- metadata +26 -11
- data/lib/sidekiq_unique_jobs/profiler.rb +0 -55
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.0
|
4
|
+
version: 7.0.0
|
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: 2021-01-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: brpoplpush-redis_script
|
@@ -56,7 +56,7 @@ dependencies:
|
|
56
56
|
requirements:
|
57
57
|
- - ">="
|
58
58
|
- !ruby/object:Gem::Version
|
59
|
-
version: '
|
59
|
+
version: '5.0'
|
60
60
|
- - "<"
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: '7.0'
|
@@ -66,7 +66,7 @@ dependencies:
|
|
66
66
|
requirements:
|
67
67
|
- - ">="
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: '
|
69
|
+
version: '5.0'
|
70
70
|
- - "<"
|
71
71
|
- !ruby/object:Gem::Version
|
72
72
|
version: '7.0'
|
@@ -94,7 +94,7 @@ description: |
|
|
94
94
|
Prevents simultaneous Sidekiq jobs with the same unique arguments to run.
|
95
95
|
Highly configurable to suite your specific needs.
|
96
96
|
email:
|
97
|
-
- mikael@
|
97
|
+
- mikael@mhenrixon.com
|
98
98
|
executables:
|
99
99
|
- uniquejobs
|
100
100
|
extensions: []
|
@@ -173,10 +173,10 @@ files:
|
|
173
173
|
- lib/sidekiq_unique_jobs/options_with_fallback.rb
|
174
174
|
- lib/sidekiq_unique_jobs/orphans/lua_reaper.rb
|
175
175
|
- lib/sidekiq_unique_jobs/orphans/manager.rb
|
176
|
+
- lib/sidekiq_unique_jobs/orphans/null_reaper.rb
|
176
177
|
- lib/sidekiq_unique_jobs/orphans/observer.rb
|
177
178
|
- lib/sidekiq_unique_jobs/orphans/reaper.rb
|
178
179
|
- lib/sidekiq_unique_jobs/orphans/ruby_reaper.rb
|
179
|
-
- lib/sidekiq_unique_jobs/profiler.rb
|
180
180
|
- lib/sidekiq_unique_jobs/redis.rb
|
181
181
|
- lib/sidekiq_unique_jobs/redis/entity.rb
|
182
182
|
- lib/sidekiq_unique_jobs/redis/hash.rb
|
@@ -212,9 +212,24 @@ metadata:
|
|
212
212
|
bug_tracker_uri: https://github.com/mhenrixon/sidekiq-unique-jobs/issues
|
213
213
|
documentation_uri: https://mhenrixon.github.io/sidekiq-unique-jobs
|
214
214
|
source_code_uri: https://github.com/mhenrixon/sidekiq-unique-jobs
|
215
|
-
changelog_uri: https://github.com/mhenrixon/sidekiq-unique-jobs/CHANGELOG.md
|
215
|
+
changelog_uri: https://github.com/mhenrixon/sidekiq-unique-jobs/blob/master/CHANGELOG.md
|
216
216
|
post_install_message: |
|
217
|
-
|
217
|
+
IMPORTANT!
|
218
|
+
|
219
|
+
Automatic configuration of the sidekiq middelware is no longer done.
|
220
|
+
Please see: https://github.com/mhenrixon/sidekiq-unique-jobs/blob/master/README.md#add-the-middleware
|
221
|
+
|
222
|
+
This version deprecated the following sidekiq_options
|
223
|
+
|
224
|
+
- sidekiq_options lock_args: :method_name
|
225
|
+
|
226
|
+
It is now configured with:
|
227
|
+
|
228
|
+
- sidekiq_options lock_args_method: :method_name
|
229
|
+
|
230
|
+
This is also true for `Sidekiq.default_worker_options`
|
231
|
+
|
232
|
+
We also deprecated the global configuration options:
|
218
233
|
- default_lock_ttl
|
219
234
|
- default_lock_ttl=
|
220
235
|
- default_lock_timeout
|
@@ -235,11 +250,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
235
250
|
version: 2.5.0
|
236
251
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
237
252
|
requirements:
|
238
|
-
- - "
|
253
|
+
- - ">="
|
239
254
|
- !ruby/object:Gem::Version
|
240
|
-
version:
|
255
|
+
version: '0'
|
241
256
|
requirements: []
|
242
|
-
rubygems_version: 3.
|
257
|
+
rubygems_version: 3.2.4
|
243
258
|
signing_key:
|
244
259
|
specification_version: 4
|
245
260
|
summary: Sidekiq middleware that prevents duplicates jobs
|
@@ -1,55 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module SidekiqUniqueJobs
|
4
|
-
#
|
5
|
-
# Class MethodProfiler provides method level profiling
|
6
|
-
#
|
7
|
-
# @author Mikael Henriksson <mikael@zoolutions.se>
|
8
|
-
#
|
9
|
-
class Profiler
|
10
|
-
def self.patch(klass, methods, name) # rubocop:disable Metrics/MethodLength
|
11
|
-
patches = methods.map do |method_name|
|
12
|
-
<<~RUBY
|
13
|
-
unless defined?(#{method_name}__mp_unpatched)
|
14
|
-
alias_method :#{method_name}__mp_unpatched, :#{method_name}
|
15
|
-
def #{method_name}(*args, &blk)
|
16
|
-
unless prof = Thread.current[:_method_profiler]
|
17
|
-
return #{method_name}__mp_unpatched(*args, &blk)
|
18
|
-
end
|
19
|
-
begin
|
20
|
-
start = Process.clock_gettime(Process::CLOCK_MONOTONIC)
|
21
|
-
#{method_name}__mp_unpatched(*args, &blk)
|
22
|
-
ensure
|
23
|
-
data = (prof[:#{name}] ||= {duration: 0.0, calls: 0})
|
24
|
-
data[:duration] += Process.clock_gettime(Process::CLOCK_MONOTONIC) - start
|
25
|
-
data[:calls] += 1
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
RUBY
|
30
|
-
end.join("\n")
|
31
|
-
|
32
|
-
klass.class_eval patches
|
33
|
-
end
|
34
|
-
|
35
|
-
def self.start
|
36
|
-
Thread.current[:_method_profiler] = {
|
37
|
-
__start: current_timestamp,
|
38
|
-
}
|
39
|
-
end
|
40
|
-
|
41
|
-
def self.stop
|
42
|
-
finish = current_timestamp
|
43
|
-
return unless (data = Thread.current[:_method_profiler])
|
44
|
-
|
45
|
-
Thread.current[:_method_profiler] = nil
|
46
|
-
start = data.delete(:__start)
|
47
|
-
data[:total_duration] = finish - start
|
48
|
-
data
|
49
|
-
end
|
50
|
-
|
51
|
-
def self.current_timestamp
|
52
|
-
Process.clock_gettime(Process::CLOCK_MONOTONIC)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|