sidekiq-unique-jobs 8.0.3 → 8.0.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +157 -1
  3. data/README.md +2 -4
  4. data/lib/sidekiq_unique_jobs/batch_delete.rb +1 -1
  5. data/lib/sidekiq_unique_jobs/changelog.rb +1 -1
  6. data/lib/sidekiq_unique_jobs/config.rb +4 -4
  7. data/lib/sidekiq_unique_jobs/constants.rb +1 -0
  8. data/lib/sidekiq_unique_jobs/digests.rb +46 -13
  9. data/lib/sidekiq_unique_jobs/job.rb +4 -4
  10. data/lib/sidekiq_unique_jobs/lock/base_lock.rb +1 -1
  11. data/lib/sidekiq_unique_jobs/lock/while_executing.rb +3 -0
  12. data/lib/sidekiq_unique_jobs/lock.rb +14 -11
  13. data/lib/sidekiq_unique_jobs/lock_config.rb +10 -4
  14. data/lib/sidekiq_unique_jobs/locksmith.rb +10 -5
  15. data/lib/sidekiq_unique_jobs/lua/delete.lua +6 -5
  16. data/lib/sidekiq_unique_jobs/lua/lock.lua +16 -7
  17. data/lib/sidekiq_unique_jobs/lua/queue.lua +9 -8
  18. data/lib/sidekiq_unique_jobs/lua/shared/_delete_from_queue.lua +10 -10
  19. data/lib/sidekiq_unique_jobs/lua/shared/_delete_from_sorted_set.lua +20 -10
  20. data/lib/sidekiq_unique_jobs/lua/unlock.lua +26 -18
  21. data/lib/sidekiq_unique_jobs/middleware/client.rb +1 -1
  22. data/lib/sidekiq_unique_jobs/middleware/server.rb +1 -1
  23. data/lib/sidekiq_unique_jobs/middleware.rb +5 -5
  24. data/lib/sidekiq_unique_jobs/on_conflict/replace.rb +1 -1
  25. data/lib/sidekiq_unique_jobs/on_conflict/reschedule.rb +5 -1
  26. data/lib/sidekiq_unique_jobs/orphans/manager.rb +8 -7
  27. data/lib/sidekiq_unique_jobs/orphans/reaper.rb +2 -1
  28. data/lib/sidekiq_unique_jobs/orphans/ruby_reaper.rb +26 -7
  29. data/lib/sidekiq_unique_jobs/redis/sorted_set.rb +12 -3
  30. data/lib/sidekiq_unique_jobs/script/caller.rb +1 -1
  31. data/lib/sidekiq_unique_jobs/script/client.rb +94 -0
  32. data/lib/sidekiq_unique_jobs/script/config.rb +68 -0
  33. data/lib/sidekiq_unique_jobs/script/dsl.rb +60 -0
  34. data/lib/sidekiq_unique_jobs/script/logging.rb +95 -0
  35. data/lib/sidekiq_unique_jobs/script/lua_error.rb +96 -0
  36. data/lib/sidekiq_unique_jobs/script/script.rb +75 -0
  37. data/lib/sidekiq_unique_jobs/script/scripts.rb +123 -0
  38. data/lib/sidekiq_unique_jobs/script/template.rb +41 -0
  39. data/lib/sidekiq_unique_jobs/script/timing.rb +35 -0
  40. data/lib/sidekiq_unique_jobs/script.rb +32 -1
  41. data/lib/sidekiq_unique_jobs/server.rb +2 -0
  42. data/lib/sidekiq_unique_jobs/sidekiq_unique_ext.rb +13 -35
  43. data/lib/sidekiq_unique_jobs/sidekiq_unique_jobs.rb +4 -4
  44. data/lib/sidekiq_unique_jobs/sidekiq_worker_methods.rb +3 -3
  45. data/lib/sidekiq_unique_jobs/testing.rb +4 -4
  46. data/lib/sidekiq_unique_jobs/version.rb +1 -1
  47. data/lib/sidekiq_unique_jobs/web/helpers.rb +3 -3
  48. data/lib/sidekiq_unique_jobs/web/views/changelogs.erb +1 -1
  49. data/lib/sidekiq_unique_jobs/web/views/lock.erb +2 -2
  50. data/lib/sidekiq_unique_jobs/web/views/locks.erb +1 -1
  51. data/lib/sidekiq_unique_jobs/web.rb +18 -17
  52. data/lib/sidekiq_unique_jobs.rb +5 -4
  53. metadata +12 -23
@@ -13,11 +13,11 @@ module SidekiqUniqueJobs
13
13
  end
14
14
 
15
15
  app.get "/changelogs" do
16
- @filter = params[:filter] || "*"
16
+ @filter = h(params[:filter] || "*")
17
17
  @filter = "*" if @filter == ""
18
- @count = (params[:count] || 100).to_i
19
- @current_cursor = params[:cursor].to_i
20
- @prev_cursor = params[:prev_cursor].to_i
18
+ @count = h(params[:count] || 100).to_i
19
+ @current_cursor = h(params[:cursor]).to_i
20
+ @prev_cursor = h(params[:prev_cursor]).to_i
21
21
  @total_size, @next_cursor, @changelogs = changelog.page(
22
22
  cursor: @current_cursor,
23
23
  pattern: @filter,
@@ -33,11 +33,11 @@ module SidekiqUniqueJobs
33
33
  end
34
34
 
35
35
  app.get "/locks" do
36
- @filter = params[:filter] || "*"
36
+ @filter = h(params[:filter]) || "*"
37
37
  @filter = "*" if @filter == ""
38
- @count = (params[:count] || 100).to_i
39
- @current_cursor = params[:cursor].to_i
40
- @prev_cursor = params[:prev_cursor].to_i
38
+ @count = h(params[:count] || 100).to_i
39
+ @current_cursor = h(params[:cursor]).to_i
40
+ @prev_cursor = h(params[:prev_cursor]).to_i
41
41
 
42
42
  @total_size, @next_cursor, @locks = digests.page(
43
43
  cursor: @current_cursor,
@@ -49,11 +49,11 @@ module SidekiqUniqueJobs
49
49
  end
50
50
 
51
51
  app.get "/expiring_locks" do
52
- @filter = params[:filter] || "*"
52
+ @filter = h(params[:filter]) || "*"
53
53
  @filter = "*" if @filter == ""
54
- @count = (params[:count] || 100).to_i
55
- @current_cursor = params[:cursor].to_i
56
- @prev_cursor = params[:prev_cursor].to_i
54
+ @count = h(params[:count] || 100).to_i
55
+ @current_cursor = h(params[:cursor]).to_i
56
+ @prev_cursor = h(params[:prev_cursor]).to_i
57
57
 
58
58
  @total_size, @next_cursor, @locks = expiring_digests.page(
59
59
  cursor: @current_cursor,
@@ -71,22 +71,23 @@ module SidekiqUniqueJobs
71
71
  end
72
72
 
73
73
  app.get "/locks/:digest" do
74
- @digest = params[:digest]
74
+ @digest = h(params[:digest])
75
75
  @lock = SidekiqUniqueJobs::Lock.new(@digest)
76
76
 
77
77
  erb(unique_template(:lock))
78
78
  end
79
79
 
80
80
  app.get "/locks/:digest/delete" do
81
- digests.delete_by_digest(params[:digest])
82
- expiring_digests.delete_by_digest(params[:digest])
81
+ digests.delete_by_digest(h(params[:digest]))
82
+ expiring_digests.delete_by_digest(h(params[:digest]))
83
83
  redirect_to :locks
84
84
  end
85
85
 
86
86
  app.get "/locks/:digest/jobs/:job_id/delete" do
87
- @digest = params[:digest]
87
+ @digest = h(params[:digest])
88
+ @job_id = h(params[:job_id])
88
89
  @lock = SidekiqUniqueJobs::Lock.new(@digest)
89
- @lock.unlock(params[:job_id])
90
+ @lock.unlock(@job_id)
90
91
 
91
92
  redirect_to "locks/#{@lock.key}"
92
93
  end
@@ -1,20 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "brpoplpush/redis_script"
3
+ require "concurrent/executor/ruby_single_thread_executor"
4
4
  require "concurrent/future"
5
- require "concurrent/promises"
6
5
  require "concurrent/map"
7
6
  require "concurrent/mutable_struct"
7
+ require "concurrent/promises"
8
8
  require "concurrent/timer_task"
9
- require "concurrent/executor/ruby_single_thread_executor"
10
9
  require "digest"
11
10
  require "digest/sha1"
12
11
  require "erb"
13
12
  require "forwardable"
14
13
  require "json"
15
14
  require "pathname"
15
+ require "redis_client"
16
16
  require "sidekiq"
17
17
 
18
+ require "sidekiq_unique_jobs/script"
19
+
18
20
  require "sidekiq_unique_jobs/deprecation"
19
21
  require "sidekiq_unique_jobs/reflections"
20
22
  require "sidekiq_unique_jobs/reflectable"
@@ -29,7 +31,6 @@ require "sidekiq_unique_jobs/timing"
29
31
  require "sidekiq_unique_jobs/sidekiq_worker_methods"
30
32
  require "sidekiq_unique_jobs/connection"
31
33
  require "sidekiq_unique_jobs/exceptions"
32
- require "sidekiq_unique_jobs/script"
33
34
  require "sidekiq_unique_jobs/script/caller"
34
35
  require "sidekiq_unique_jobs/normalizer"
35
36
  require "sidekiq_unique_jobs/job"
metadata CHANGED
@@ -1,35 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq-unique-jobs
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.0.3
4
+ version: 8.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mikael Henriksson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-10 00:00:00.000000000 Z
11
+ date: 2024-02-22 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: brpoplpush-redis_script
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">"
18
- - !ruby/object:Gem::Version
19
- version: 0.1.1
20
- - - "<="
21
- - !ruby/object:Gem::Version
22
- version: 2.0.0
23
- type: :runtime
24
- prerelease: false
25
- version_requirements: !ruby/object:Gem::Requirement
26
- requirements:
27
- - - ">"
28
- - !ruby/object:Gem::Version
29
- version: 0.1.1
30
- - - "<="
31
- - !ruby/object:Gem::Version
32
- version: 2.0.0
33
13
  - !ruby/object:Gem::Dependency
34
14
  name: concurrent-ruby
35
15
  requirement: !ruby/object:Gem::Requirement
@@ -195,6 +175,15 @@ files:
195
175
  - lib/sidekiq_unique_jobs/rspec/matchers/have_valid_sidekiq_options.rb
196
176
  - lib/sidekiq_unique_jobs/script.rb
197
177
  - lib/sidekiq_unique_jobs/script/caller.rb
178
+ - lib/sidekiq_unique_jobs/script/client.rb
179
+ - lib/sidekiq_unique_jobs/script/config.rb
180
+ - lib/sidekiq_unique_jobs/script/dsl.rb
181
+ - lib/sidekiq_unique_jobs/script/logging.rb
182
+ - lib/sidekiq_unique_jobs/script/lua_error.rb
183
+ - lib/sidekiq_unique_jobs/script/script.rb
184
+ - lib/sidekiq_unique_jobs/script/scripts.rb
185
+ - lib/sidekiq_unique_jobs/script/template.rb
186
+ - lib/sidekiq_unique_jobs/script/timing.rb
198
187
  - lib/sidekiq_unique_jobs/server.rb
199
188
  - lib/sidekiq_unique_jobs/sidekiq_unique_ext.rb
200
189
  - lib/sidekiq_unique_jobs/sidekiq_unique_jobs.rb
@@ -234,7 +223,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
234
223
  - !ruby/object:Gem::Version
235
224
  version: '0'
236
225
  requirements: []
237
- rubygems_version: 3.4.15
226
+ rubygems_version: 3.5.6
238
227
  signing_key:
239
228
  specification_version: 4
240
229
  summary: Sidekiq middleware that prevents duplicates jobs