sidekiq-unique-jobs 3.0.7 → 3.0.8
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8554798396c72d3690d539a5c8fb28fbf25a9333
|
4
|
+
data.tar.gz: ae6a41b82e11b7b8d4526a4a9c4a5cd374d7c36c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 804380e5c2f608a6b162cfd48c43e36d28e8a50ba860b4eff1aaf6cd51dbb5007652407a7f18abad62ab9d667a1652c140fc9999f6866757bb493cd2b05f254f
|
7
|
+
data.tar.gz: c6bdd3053362b0893d478d4a85956796d792e7cdcf0be4b62a131a07e3abf6ebfea871138270166a8f4d8366fd72e026324192fb031f026132129c0e3041c85a
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require 'sidekiq/api'
|
2
|
+
|
3
|
+
module Sidekiq
|
4
|
+
class Job
|
5
|
+
module UniqueExtension
|
6
|
+
def self.included(base)
|
7
|
+
base.class_eval do
|
8
|
+
alias_method :delete_orig, :delete
|
9
|
+
alias_method :delete, :delete_ext
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def delete_ext
|
14
|
+
unlock(payload_hash(item))
|
15
|
+
delete_orig
|
16
|
+
end
|
17
|
+
|
18
|
+
protected
|
19
|
+
|
20
|
+
def payload_hash(item)
|
21
|
+
SidekiqUniqueJobs::PayloadHelper.get_payload(item['class'], item['queue'], item['args'])
|
22
|
+
end
|
23
|
+
|
24
|
+
def unlock(payload_hash)
|
25
|
+
Sidekiq.redis { |conn| conn.del(payload_hash) }
|
26
|
+
end
|
27
|
+
end
|
28
|
+
include UniqueExtension
|
29
|
+
end
|
30
|
+
|
31
|
+
class Queue
|
32
|
+
module UniqueExtension
|
33
|
+
def self.included(base)
|
34
|
+
base.class_eval do
|
35
|
+
alias_method :clear_orig, :clear
|
36
|
+
alias_method :clear, :clear_ext
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def clear_ext
|
41
|
+
each(&:delete)
|
42
|
+
clear_orig
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
include UniqueExtension
|
47
|
+
end
|
48
|
+
|
49
|
+
class JobSet
|
50
|
+
module UniqueExtension
|
51
|
+
def self.included(base)
|
52
|
+
base.class_eval do
|
53
|
+
if base.method_defined?(:clear)
|
54
|
+
alias_method :clear_orig, :clear
|
55
|
+
alias_method :clear, :clear_ext
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def clear_ext
|
61
|
+
each(&:delete_ext)
|
62
|
+
clear_orig
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
include UniqueExtension
|
67
|
+
end
|
68
|
+
end
|
@@ -4,7 +4,6 @@ require 'sidekiq-unique-jobs'
|
|
4
4
|
require 'sidekiq/scheduled'
|
5
5
|
require 'sidekiq_unique_jobs/middleware/server/unique_jobs'
|
6
6
|
require 'active_support/testing/time_helpers'
|
7
|
-
require 'active_support/core_ext'
|
8
7
|
require 'rspec-sidekiq'
|
9
8
|
|
10
9
|
describe 'When Sidekiq::Testing is enabled' do
|
@@ -114,7 +113,7 @@ describe 'When Sidekiq::Testing is enabled' do
|
|
114
113
|
InlineExpirationWorker.perform_async(2)
|
115
114
|
expect(TestClass).to have_received(:run).with(1).once
|
116
115
|
expect(TestClass).to have_received(:run).with(2).once
|
117
|
-
travel_to(11
|
116
|
+
travel_to(Time.now + (11 * 60)) do
|
118
117
|
InlineExpirationWorker.perform_async(1)
|
119
118
|
end
|
120
119
|
|
@@ -0,0 +1,73 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'sidekiq/api'
|
3
|
+
require 'sidekiq/worker'
|
4
|
+
require 'sidekiq_unique_jobs/middleware/server/unique_jobs'
|
5
|
+
require 'sidekiq_unique_jobs/middleware/client/unique_jobs'
|
6
|
+
require 'sidekiq_unique_jobs/sidekiq_unique_ext'
|
7
|
+
|
8
|
+
class JustAWorker
|
9
|
+
include Sidekiq::Worker
|
10
|
+
|
11
|
+
sidekiq_options unique: true, queue: 'testqueue'
|
12
|
+
|
13
|
+
def perform
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
describe Sidekiq::Job::UniqueExtension do
|
18
|
+
|
19
|
+
before do
|
20
|
+
Sidekiq.redis = REDIS
|
21
|
+
Sidekiq.redis(&:flushdb)
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'deletes uniqueness lock on delete' do
|
25
|
+
params = { foo: 'bar' }
|
26
|
+
payload_hash = SidekiqUniqueJobs::PayloadHelper.get_payload('JustAWorker', 'testqueue', [params])
|
27
|
+
jid = JustAWorker.perform_async(foo: 'bar')
|
28
|
+
queue = Sidekiq::Queue.new('testqueue')
|
29
|
+
job = queue.find_job(jid)
|
30
|
+
job.delete
|
31
|
+
Sidekiq.redis do |c|
|
32
|
+
expect(c.exists(payload_hash)).to be_falsy
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe Sidekiq::Queue::UniqueExtension do
|
38
|
+
|
39
|
+
before do
|
40
|
+
Sidekiq.redis = REDIS
|
41
|
+
Sidekiq.redis(&:flushdb)
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'deletes uniqueness locks on clear' do
|
45
|
+
params = { foo: 'bar' }
|
46
|
+
payload_hash = SidekiqUniqueJobs::PayloadHelper.get_payload('JustAWorker', 'testqueue', [params])
|
47
|
+
JustAWorker.perform_async(foo: 'bar')
|
48
|
+
queue = Sidekiq::Queue.new('testqueue')
|
49
|
+
queue.clear
|
50
|
+
Sidekiq.redis do |c|
|
51
|
+
expect(c.exists(payload_hash)).to be_falsy
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
describe Sidekiq::JobSet::UniqueExtension, sidekiq_ver: 3 do
|
57
|
+
|
58
|
+
before do
|
59
|
+
Sidekiq.redis = REDIS
|
60
|
+
Sidekiq.redis(&:flushdb)
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'deletes uniqueness locks on clear' do
|
64
|
+
params = { foo: 'bar' }
|
65
|
+
payload_hash = SidekiqUniqueJobs::PayloadHelper.get_payload('JustAWorker', 'testqueue', [params])
|
66
|
+
JustAWorker.perform_in(60 * 60 * 3, foo: 'bar')
|
67
|
+
set = Sidekiq::JobSet.new('schedule')
|
68
|
+
set.clear
|
69
|
+
Sidekiq.redis do |c|
|
70
|
+
expect(c.exists(payload_hash)).to be_falsy
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
@@ -4,6 +4,11 @@ RSpec.configure do |config|
|
|
4
4
|
sidekiq = :fake if sidekiq == true
|
5
5
|
Sidekiq::Testing.send("#{sidekiq}!")
|
6
6
|
end
|
7
|
+
|
8
|
+
sidekiq_ver = example.metadata[:sidekiq_ver]
|
9
|
+
if sidekiq_ver && Sidekiq::VERSION[0].to_s != sidekiq_ver.to_s
|
10
|
+
skip("Not relevant for version #{sidekiq_ver}")
|
11
|
+
end
|
7
12
|
end
|
8
13
|
|
9
14
|
config.after(:each) do |example|
|
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: 3.0.
|
4
|
+
version: 3.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mikael Henriksson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-11-
|
11
|
+
date: 2014-11-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sidekiq
|
@@ -156,6 +156,7 @@ files:
|
|
156
156
|
- lib/sidekiq_unique_jobs/middleware/client/unique_jobs.rb
|
157
157
|
- lib/sidekiq_unique_jobs/middleware/server/unique_jobs.rb
|
158
158
|
- lib/sidekiq_unique_jobs/payload_helper.rb
|
159
|
+
- lib/sidekiq_unique_jobs/sidekiq_unique_ext.rb
|
159
160
|
- lib/sidekiq_unique_jobs/testing.rb
|
160
161
|
- lib/sidekiq_unique_jobs/version.rb
|
161
162
|
- sidekiq-unique-jobs.gemspec
|
@@ -163,6 +164,7 @@ files:
|
|
163
164
|
- spec/lib/client_spec.rb
|
164
165
|
- spec/lib/middleware/server/unique_jobs_spec.rb
|
165
166
|
- spec/lib/sidekiq_testing_enabled_spec.rb
|
167
|
+
- spec/lib/sidekiq_unique_ext_spec.rb
|
166
168
|
- spec/lib/unlock_order_spec.rb
|
167
169
|
- spec/spec_helper.rb
|
168
170
|
- spec/support/my_worker.rb
|