sidekiq-unique-jobs 3.0.12 → 3.0.13

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: 8c9eff48d1f8cefec85845b3219bdee4ade019fc
4
- data.tar.gz: c4241dbb2845b7ed7ea2ff78197a9e1b22f134c4
3
+ metadata.gz: b074cf18e3e7d0878e69527a8716e0c962cf9279
4
+ data.tar.gz: b960227a096e842d45446eb2e44d916b638451a5
5
5
  SHA512:
6
- metadata.gz: fb8d4676c2f6c74061c462f5c71da38df4c433ca6c46b79aa0f8e05fba1391e0fa06ebd5139438e9522b0c97e72653e60ed359beba9b10152d1478b42da1e94c
7
- data.tar.gz: ff3c62e6f6e6676d8ebb3a13a5afa9e39533ae7fdda1c6ae602fde89f32593956f80006bec2cdd1a98e606793d2209db0c785454391da4cefdca07970a052eed
6
+ metadata.gz: aaaf71ae3c669a2cb77390e1d4c4a9fd12ef0cb1909f187cc9435ff858b6c2967a2e5f64f15c2b129f2776b9c1dd112bc1d44bdb0da114cdcd38aa0a8adf7b50
7
+ data.tar.gz: 985a07f514bbc295c1ef2191eacde190246c0d6a7368f1db82046e77a487a7bc1207edfda5c485d4775a9d9d0592ef1e97c937384ff8979c069a732179e10e27
data/.gitignore CHANGED
@@ -8,3 +8,4 @@ Gemfile.lock
8
8
  .ruby-version
9
9
  .idea/
10
10
  gemfiles/*.lock
11
+ *.sw?
data/.travis.yml CHANGED
@@ -2,17 +2,16 @@ language: ruby
2
2
  services:
3
3
  - redis-server
4
4
  rvm:
5
- - 1.9.3
6
5
  - jruby-19mode
7
- - rbx-19mode
6
+ - rbx2
8
7
  - 2.0.0
9
8
  - 2.1.2
10
9
  - 2.2.2
11
10
  gemfile:
12
- - gemfiles/sidekiq_2.15.gemfile
13
- - gemfiles/sidekiq_2.16.gemfile
14
- - gemfiles/sidekiq_2.17.gemfile
15
11
  - gemfiles/sidekiq_3.0.gemfile
12
+ - gemfiles/sidekiq_3.1.gemfile
13
+ - gemfiles/sidekiq_3.2.gemfile
14
+ - gemfiles/sidekiq_3.3.gemfile
16
15
  - gemfiles/sidekiq_develop.gemfile
17
16
  branches:
18
17
  only:
@@ -23,4 +22,4 @@ notifications:
23
22
  - mikael@zoolutions.se
24
23
  matrix:
25
24
  allow_failures:
26
- - rvm: rbx-19mode
25
+ - rvm: rbx2
data/Appraisals CHANGED
@@ -1,20 +1,23 @@
1
1
  appraise "sidekiq-develop" do
2
2
  gem 'sidekiq', github: 'mperham/sidekiq'
3
- gem 'sidekiq', '3.0', :platform => :mri_19
4
3
  end
5
4
 
6
5
  appraise "sidekiq-2.17" do
7
- gem 'sidekiq', '2.17'
6
+ gem 'sidekiq', '~> 2.17.0'
8
7
  end
9
8
 
10
- appraise "sidekiq-2.16" do
11
- gem "sidekiq", '2.16'
9
+ appraise "sidekiq-3.0" do
10
+ gem "sidekiq", '~> 3.0.0'
12
11
  end
13
12
 
14
- appraise "sidekiq-2.15" do
15
- gem "sidekiq", '2.15'
13
+ appraise "sidekiq-3.1" do
14
+ gem "sidekiq", '~> 3.1.0'
16
15
  end
17
16
 
18
- appraise "sidekiq-3.0" do
19
- gem "sidekiq", '3.0'
17
+ appraise "sidekiq-3.2" do
18
+ gem "sidekiq", '~> 3.2.0'
19
+ end
20
+
21
+ appraise "sidekiq-3.3" do
22
+ gem "sidekiq", '~> 3.3.0'
20
23
  end
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## v3.0.13
2
+ - Improved testing capabilities (testing uniqueness should not work better)
3
+ - Configurable logging of duplicate payloads
4
+ - Now requires `sidekiq_unique_ext` and `sidekiq/api` by default
5
+ - Drop support for MRI 1.9 and sidekiq 2
6
+
1
7
  ## v3.0.11
2
8
  - Ensure threadsafety (thanks to adstage-david)
3
9
 
data/README.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  The missing unique jobs for sidekiq
4
4
 
5
+ ## Requirements
6
+
7
+ See https://github.com/mperham/sidekiq#requirements for what is required. Starting from 3.0.13 only sidekiq 3 is supported and support for MRI 1.9 is dropped (it might work but won't be worked on)
8
+
5
9
  ## Installation
6
10
 
7
11
  Add this line to your application's Gemfile:
@@ -92,6 +96,21 @@ class UniqueJobWithFilterMethod
92
96
  end
93
97
  ```
94
98
 
99
+ ### Logging
100
+
101
+ To see logging in sidekiq when duplicate payload has been filtered out you can enable on a per worker basis using the sidekiq options. The default value is false
102
+
103
+ ```ruby
104
+ class UniqueJobWithFilterMethod
105
+ include Sidekiq::Worker
106
+ sidekiq_options unique: true,
107
+ log_duplicate_payload: true
108
+
109
+ ...
110
+
111
+ end
112
+ ```
113
+
95
114
  ### Testing
96
115
 
97
116
  SidekiqUniqueJobs uses mock_redis for inline testing. Due to complaints about having that as a runtime dependency it was made a development dependency so if you are relying on inline testing you will have to add `gem 'mock_redis'` to your Gemfile.
@@ -112,3 +131,6 @@ SidekiqUniqueJobs uses mock_redis for inline testing. Due to complaints about ha
112
131
  - https://github.com/eduardosasso
113
132
  - https://github.com/KensoDev
114
133
  - https://github.com/adstage-david
134
+ - https://github.com/jprincipe
135
+ - https://github.com/crberube
136
+ - https://github.com/simonoff
@@ -4,6 +4,6 @@ source "http://rubygems.org"
4
4
 
5
5
  gem "appraisal", "~> 1.0.0"
6
6
  gem "pry", :platform => :mri
7
- gem "sidekiq", "2.17"
7
+ gem "sidekiq", "~> 2.17.0"
8
8
 
9
9
  gemspec :path => "../"
@@ -2,8 +2,8 @@
2
2
 
3
3
  source "http://rubygems.org"
4
4
 
5
- gem "appraisal", "~> 1.0.0"
5
+ gem "appraisal", "~> 2.0.0"
6
6
  gem "pry", :platform => :mri
7
- gem "sidekiq", "3.0"
7
+ gem "sidekiq", "~> 3.0.0"
8
8
 
9
9
  gemspec :path => "../"
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "appraisal", "~> 2.0.0"
6
+ gem "pry", :platform => :mri
7
+ gem "sidekiq", "~> 3.1.0"
8
+
9
+ gemspec :path => "../"
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "appraisal", "~> 2.0.0"
6
+ gem "pry", :platform => :mri
7
+ gem "sidekiq", "~> 3.2.0"
8
+
9
+ gemspec :path => "../"
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "appraisal", "~> 2.0.0"
6
+ gem "pry", :platform => :mri
7
+ gem "sidekiq", "~> 3.3.0"
8
+
9
+ gemspec :path => "../"
@@ -2,8 +2,8 @@
2
2
 
3
3
  source "http://rubygems.org"
4
4
 
5
- gem "appraisal", "~> 1.0.0"
5
+ gem "appraisal", "~> 2.0.0"
6
6
  gem "pry", :platform => :mri
7
- gem "sidekiq", "3.0", :platform => :mri_19
7
+ gem "sidekiq", :github => "mperham/sidekiq"
8
8
 
9
9
  gemspec :path => "../"
@@ -4,6 +4,8 @@ require 'sidekiq_unique_jobs/middleware'
4
4
  require 'sidekiq_unique_jobs/version'
5
5
  require 'sidekiq_unique_jobs/config'
6
6
  require 'sidekiq_unique_jobs/payload_helper'
7
+ require 'sidekiq_unique_jobs/sidekiq_unique_ext'
8
+
7
9
  require 'ostruct'
8
10
 
9
11
  module SidekiqUniqueJobs
@@ -31,14 +31,18 @@ module SidekiqUniqueJobs
31
31
  end
32
32
 
33
33
  def inline_testing_enabled?
34
- if Sidekiq.const_defined?('Testing') && Sidekiq::Testing.enabled? && Sidekiq::Testing.inline?
35
- require 'sidekiq_unique_jobs/testing'
34
+ if testing_enabled? && Sidekiq::Testing.inline?
35
+ require 'sidekiq_unique_jobs/inline_testing'
36
36
  return true
37
37
  end
38
38
 
39
39
  false
40
40
  end
41
41
 
42
+ def testing_enabled?
43
+ Sidekiq.const_defined?('Testing') && Sidekiq::Testing.enabled?
44
+ end
45
+
42
46
  def unique_args_enabled?
43
47
  config.unique_args_enabled
44
48
  end
@@ -1,6 +1,12 @@
1
1
  require 'digest'
2
2
  require 'sidekiq_unique_jobs/connectors'
3
3
 
4
+ REQUIRE_FILES = lambda do
5
+ if SidekiqUniqueJobs.config.testing_enabled? && Sidekiq::Testing.fake?
6
+ require 'sidekiq_unique_jobs/sidekiq_test_overrides'
7
+ end
8
+ end
9
+
4
10
  module SidekiqUniqueJobs
5
11
  module Middleware
6
12
  module Client
@@ -10,21 +16,25 @@ module SidekiqUniqueJobs
10
16
  true
11
17
  end
12
18
 
13
- def self.review(worker_class, item, queue, redis_pool = nil)
14
- new(worker_class, item, queue, redis_pool).review { yield }
19
+ def self.review(worker_class, item, queue, redis_pool = nil, log_duplicate_payload = false)
20
+ new(worker_class, item, queue, redis_pool, log_duplicate_payload).review { yield }
15
21
  end
16
22
 
17
- def initialize(worker_class, item, queue, redis_pool = nil)
23
+ def initialize(worker_class, item, queue, redis_pool = nil, log_duplicate_payload = false)
18
24
  @worker_class = SidekiqUniqueJobs.worker_class_constantize(worker_class)
19
25
  @item = item
20
26
  @queue = queue
21
27
  @redis_pool = redis_pool
28
+ @log_duplicate_payload = log_duplicate_payload
29
+ REQUIRE_FILES.call
22
30
  end
23
31
 
24
32
  def review
25
33
  item['unique_hash'] = payload_hash
26
34
  unless unique_for_connection?
27
- Sidekiq.logger.warn "payload is not unique #{item}"
35
+ if @log_duplicate_payload
36
+ Sidekiq.logger.warn "payload is not unique #{item}"
37
+ end
28
38
  return
29
39
  end
30
40
  yield
@@ -32,7 +42,7 @@ module SidekiqUniqueJobs
32
42
 
33
43
  private
34
44
 
35
- attr_reader :item, :worker_class, :redis_pool, :queue
45
+ attr_reader :item, :worker_class, :redis_pool, :queue, :log_duplicate_payload
36
46
 
37
47
  # rubocop:disable MethodLength
38
48
  def unique_for_connection?
@@ -18,7 +18,7 @@ module SidekiqUniqueJobs
18
18
  @redis_pool = redis_pool
19
19
 
20
20
  if unique_enabled?
21
- strategy.review(worker_class, item, queue, redis_pool) { yield }
21
+ strategy.review(worker_class, item, queue, redis_pool, log_duplicate_payload?) { yield }
22
22
  else
23
23
  yield
24
24
  end
@@ -30,6 +30,10 @@ module SidekiqUniqueJobs
30
30
  worker_class.get_sidekiq_options['unique'] || item['unique']
31
31
  end
32
32
 
33
+ def log_duplicate_payload?
34
+ worker_class.get_sidekiq_options['log_duplicate_payload'] || item['log_duplicate_payload']
35
+ end
36
+
33
37
  def strategy
34
38
  STRATEGIES.detect(&:elegible?)
35
39
  end
@@ -0,0 +1,101 @@
1
+ require 'sidekiq/testing'
2
+
3
+ module Sidekiq
4
+ module Worker
5
+ module ClassMethods
6
+ module Overrides
7
+ def self.included(base)
8
+ override_methods(base) unless base.method_defined?(:execute_job)
9
+
10
+ base.class_eval do
11
+ alias_method :execute_job_orig, :execute_job
12
+ alias_method :execute_job, :execute_job_ext
13
+
14
+ alias_method :clear_orig, :clear
15
+ alias_method :clear, :clear_ext
16
+ end
17
+ end
18
+
19
+ def execute_job_ext(worker, args)
20
+ execute_job_orig(worker, args)
21
+ payload_hash = SidekiqUniqueJobs::PayloadHelper.get_payload(
22
+ worker.class.name,
23
+ get_sidekiq_options['queue'],
24
+ args
25
+ )
26
+ Sidekiq.redis { |conn| conn.del(payload_hash) }
27
+ end
28
+
29
+ def clear_ext
30
+ payload_hashes = jobs.map { |job| job['unique_hash'] }
31
+ clear_orig
32
+ return if payload_hashes.empty?
33
+
34
+ Sidekiq.redis { |conn| conn.del(*payload_hashes) }
35
+ end
36
+
37
+ # Disable rubocop because methods are lifted directly out of Sidekiq
38
+ # rubocop:disable all
39
+ def override_methods(base)
40
+ base.class_eval do
41
+ define_method(:drain) do
42
+ while job = jobs.shift do
43
+ worker = new
44
+ worker.jid = job['jid']
45
+ execute_job(worker, job['args'])
46
+ end
47
+ end
48
+
49
+ define_method(:perform_one) do
50
+ raise(EmptyQueueError, "perform_one called with empty job queue") if jobs.empty?
51
+ job = jobs.shift
52
+ worker = new
53
+ worker.jid = job['jid']
54
+ execute_job(worker, job['args'])
55
+ end
56
+
57
+ define_method(:execute_job) do |worker, args|
58
+ worker.perform(*args)
59
+ end
60
+ end
61
+ end
62
+ # rubocop:enable all
63
+
64
+ module_function :override_methods
65
+ private_class_method :override_methods
66
+ end
67
+
68
+ include Overrides
69
+ end
70
+ end
71
+ end
72
+
73
+ module Sidekiq
74
+ module Worker
75
+ module Overrides
76
+ def self.included(base)
77
+ base.extend ClassMethods
78
+
79
+ base.class_eval do
80
+ class << self
81
+ alias_method :clear_all_orig, :clear_all
82
+ alias_method :clear_all, :clear_all_ext
83
+ end
84
+ end
85
+ end
86
+
87
+ module ClassMethods
88
+ def clear_all_ext
89
+ clear_all_orig
90
+ unique_prefix = SidekiqUniqueJobs.config.unique_prefix
91
+ unique_keys = Sidekiq.redis { |conn| conn.keys("#{unique_prefix}*") }
92
+ return if unique_keys.empty?
93
+
94
+ Sidekiq.redis { |conn| conn.del(*unique_keys) }
95
+ end
96
+ end
97
+ end
98
+
99
+ include Overrides
100
+ end
101
+ end
@@ -1,3 +1,3 @@
1
1
  module SidekiqUniqueJobs
2
- VERSION = '3.0.12'
2
+ VERSION = '3.0.13'
3
3
  end
@@ -169,5 +169,25 @@ describe 'Client' do
169
169
 
170
170
  expect(actual_expires_at).to be_within(2).of(expected_expires_at)
171
171
  end
172
+
173
+ it 'logs duplicate payload when config turned on' do
174
+ expect(Sidekiq.logger).to receive(:warn).with(/^payload is not unique/)
175
+
176
+ QueueWorker.sidekiq_options unique: true, log_duplicate_payload: true
177
+
178
+ 2.times { Sidekiq::Client.push('class' => QueueWorker, 'queue' => 'customqueue', 'args' => [1, 2]) }
179
+ result = Sidekiq.redis { |c| c.llen('queue:customqueue') }
180
+ expect(result).to eq 1
181
+ end
182
+
183
+ it 'does not log duplicate payload when config turned off' do
184
+ expect(Sidekiq.logger).to_not receive(:warn).with(/^payload is not unique/)
185
+
186
+ QueueWorker.sidekiq_options unique: true, log_duplicate_payload: false
187
+
188
+ 2.times { Sidekiq::Client.push('class' => QueueWorker, 'queue' => 'customqueue', 'args' => [1, 2]) }
189
+ result = Sidekiq.redis { |c| c.llen('queue:customqueue') }
190
+ expect(result).to eq 1
191
+ end
172
192
  end
173
193
  end
@@ -9,21 +9,110 @@ require 'rspec-sidekiq'
9
9
 
10
10
  describe 'When Sidekiq::Testing is enabled' do
11
11
  describe 'when set to :fake!', sidekiq: :fake do
12
+ before do
13
+ Sidekiq.redis = REDIS
14
+ Sidekiq.redis(&:flushdb)
15
+ end
16
+
12
17
  context 'with unique worker' do
13
18
  it 'does not push duplicate messages' do
14
19
  param = 'work'
15
20
  expect(UniqueWorker.jobs.size).to eq(0)
16
- UniqueWorker.perform_async(param)
21
+ expect(UniqueWorker.perform_async(param)).to_not be_nil
17
22
  expect(UniqueWorker.jobs.size).to eq(1)
18
23
  expect(UniqueWorker).to have_enqueued_job(param)
24
+ expect(UniqueWorker.perform_async(param)).to be_nil
25
+ expect(UniqueWorker.jobs.size).to eq(1)
26
+ end
27
+
28
+ it 'unlocks jobs after draining a worker' do
29
+ param = 'work'
30
+ param2 = 'more work'
31
+ expect(UniqueWorker.jobs.size).to eq(0)
32
+ UniqueWorker.perform_async(param)
33
+ UniqueWorker.perform_async(param2)
34
+ expect(UniqueWorker.jobs.size).to eq(2)
35
+ UniqueWorker.drain
36
+ expect(UniqueWorker.jobs.size).to eq(0)
37
+ UniqueWorker.perform_async(param)
38
+ UniqueWorker.perform_async(param2)
39
+ expect(UniqueWorker.jobs.size).to eq(2)
40
+ end
41
+
42
+ it 'unlocks a single job when calling perform_one' do
43
+ param = 'work'
44
+ param2 = 'more work'
45
+ expect(UniqueWorker.jobs.size).to eq(0)
46
+ UniqueWorker.perform_async(param)
47
+ UniqueWorker.perform_async(param2)
48
+ expect(UniqueWorker.jobs.size).to eq(2)
49
+ UniqueWorker.perform_one
50
+ expect(UniqueWorker.jobs.size).to eq(1)
51
+ UniqueWorker.perform_async(param2)
52
+ expect(UniqueWorker.jobs.size).to eq(1)
53
+ UniqueWorker.perform_async(param)
54
+ expect(UniqueWorker.jobs.size).to eq(2)
55
+ end
56
+
57
+ it 'unlocks jobs cleared from a single worker' do
58
+ param = 'work'
59
+ param2 = 'more work'
60
+ expect(UniqueWorker.jobs.size).to eq(0)
61
+ expect(AnotherUniqueWorker.jobs.size).to eq(0)
62
+ UniqueWorker.perform_async(param)
63
+ UniqueWorker.perform_async(param2)
64
+ AnotherUniqueWorker.perform_async(param)
65
+ expect(UniqueWorker.jobs.size).to eq(2)
66
+ expect(AnotherUniqueWorker.jobs.size).to eq(1)
67
+ UniqueWorker.clear
68
+ expect(UniqueWorker.jobs.size).to eq(0)
69
+ expect(AnotherUniqueWorker.jobs.size).to eq(1)
70
+ UniqueWorker.perform_async(param)
71
+ UniqueWorker.perform_async(param2)
72
+ AnotherUniqueWorker.perform_async(param)
73
+ expect(UniqueWorker.jobs.size).to eq(2)
74
+ expect(AnotherUniqueWorker.jobs.size).to eq(1)
75
+ end
76
+
77
+ it 'handles clearing an empty worker queue' do
78
+ param = 'work'
79
+ UniqueWorker.perform_async(param)
80
+ UniqueWorker.clear
81
+ expect(UniqueWorker.jobs.size).to eq(0)
82
+ expect { UniqueWorker.clear }.not_to raise_error
83
+ end
84
+
85
+ it 'unlocks jobs when all workers are cleared' do
86
+ param = 'work'
87
+ expect(UniqueWorker.jobs.size).to eq(0)
88
+ expect(AnotherUniqueWorker.jobs.size).to eq(0)
89
+ UniqueWorker.perform_async(param)
90
+ AnotherUniqueWorker.perform_async(param)
91
+ expect(UniqueWorker.jobs.size).to eq(1)
92
+ expect(AnotherUniqueWorker.jobs.size).to eq(1)
93
+ Sidekiq::Worker.clear_all
94
+ expect(UniqueWorker.jobs.size).to eq(0)
95
+ expect(AnotherUniqueWorker.jobs.size).to eq(0)
19
96
  UniqueWorker.perform_async(param)
97
+ AnotherUniqueWorker.perform_async(param)
20
98
  expect(UniqueWorker.jobs.size).to eq(1)
99
+ expect(AnotherUniqueWorker.jobs.size).to eq(1)
100
+ end
101
+
102
+ it 'handles clearing all workers when there are no jobs' do
103
+ param = 'work'
104
+ UniqueWorker.perform_async(param)
105
+ AnotherUniqueWorker.perform_async(param)
106
+ Sidekiq::Worker.clear_all
107
+ expect(UniqueWorker.jobs.size).to eq(0)
108
+ expect(AnotherUniqueWorker.jobs.size).to eq(0)
109
+ expect { Sidekiq::Worker.jobs.size }.not_to raise_error
21
110
  end
22
111
 
23
112
  it 'adds the unique_hash to the message' do
24
113
  param = 'hash'
25
114
  hash = SidekiqUniqueJobs::PayloadHelper.get_payload(UniqueWorker, :working, [param])
26
- UniqueWorker.perform_async(param)
115
+ expect(UniqueWorker.perform_async(param)).to_not be_nil
27
116
  expect(UniqueWorker.jobs.size).to eq(1)
28
117
  expect(UniqueWorker.jobs.first['unique_hash']).to eq(hash)
29
118
  end
data/spec/spec_helper.rb CHANGED
@@ -18,7 +18,7 @@ Sidekiq::Testing.disable!
18
18
 
19
19
  require 'sidekiq/redis_connection'
20
20
  redis_url = ENV['REDIS_URL'] || 'redis://localhost/15'
21
- REDIS = Sidekiq::RedisConnection.create(url: redis_url, namespace: 'testy')
21
+ REDIS = Sidekiq::RedisConnection.create(url: redis_url, namespace: 'sidekiq-unique-jobs-testing')
22
22
 
23
23
  Dir[File.join(File.dirname(__FILE__), 'support', '**', '*.rb')].each { |f| require f }
24
24
  RSpec.configure do |_config|
@@ -0,0 +1,13 @@
1
+ class AnotherUniqueWorker
2
+ include Sidekiq::Worker
3
+ sidekiq_options queue: :working, retry: 1, backtrace: 10
4
+ sidekiq_options unique: true
5
+
6
+ sidekiq_retries_exhausted do |msg|
7
+ Sidekiq.logger.warn "Failed #{msg['class']} with #{msg['args']}: #{msg['error_message']}"
8
+ end
9
+
10
+ def perform(*)
11
+ # NO-OP
12
+ end
13
+ end
@@ -7,7 +7,7 @@ class MyWorker
7
7
  Sidekiq.logger.warn "Failed #{msg['class']} with #{msg['args']}: #{msg['error_message']}"
8
8
  end
9
9
 
10
- def perform(param)
11
- puts param
10
+ def perform(*)
11
+ # NO-OP
12
12
  end
13
13
  end
@@ -7,7 +7,7 @@ class UniqueWorker
7
7
  Sidekiq.logger.warn "Failed #{msg['class']} with #{msg['args']}: #{msg['error_message']}"
8
8
  end
9
9
 
10
- def perform(param)
11
- puts param
10
+ def perform(*)
11
+ # NO-OP
12
12
  end
13
13
  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: 3.0.12
4
+ version: 3.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mikael Henriksson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-20 00:00:00.000000000 Z
11
+ date: 2015-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sidekiq
@@ -143,6 +143,9 @@ files:
143
143
  - gemfiles/sidekiq_2.16.gemfile
144
144
  - gemfiles/sidekiq_2.17.gemfile
145
145
  - gemfiles/sidekiq_3.0.gemfile
146
+ - gemfiles/sidekiq_3.1.gemfile
147
+ - gemfiles/sidekiq_3.2.gemfile
148
+ - gemfiles/sidekiq_3.3.gemfile
146
149
  - gemfiles/sidekiq_develop.gemfile
147
150
  - lib/sidekiq-unique-jobs.rb
148
151
  - lib/sidekiq_unique_jobs/config.rb
@@ -150,23 +153,24 @@ files:
150
153
  - lib/sidekiq_unique_jobs/connectors/redis_pool.rb
151
154
  - lib/sidekiq_unique_jobs/connectors/sidekiq_redis.rb
152
155
  - lib/sidekiq_unique_jobs/connectors/testing.rb
156
+ - lib/sidekiq_unique_jobs/inline_testing.rb
153
157
  - lib/sidekiq_unique_jobs/middleware.rb
154
158
  - lib/sidekiq_unique_jobs/middleware/client/strategies/testing_inline.rb
155
159
  - lib/sidekiq_unique_jobs/middleware/client/strategies/unique.rb
156
160
  - lib/sidekiq_unique_jobs/middleware/client/unique_jobs.rb
157
161
  - lib/sidekiq_unique_jobs/middleware/server/unique_jobs.rb
158
162
  - lib/sidekiq_unique_jobs/payload_helper.rb
163
+ - lib/sidekiq_unique_jobs/sidekiq_test_overrides.rb
159
164
  - lib/sidekiq_unique_jobs/sidekiq_unique_ext.rb
160
- - lib/sidekiq_unique_jobs/testing.rb
161
165
  - lib/sidekiq_unique_jobs/version.rb
162
166
  - sidekiq-unique-jobs.gemspec
163
- - spec/lib/.sidekiq_testing_enabled_spec.rb.swp
164
167
  - spec/lib/client_spec.rb
165
168
  - spec/lib/middleware/server/unique_jobs_spec.rb
166
169
  - spec/lib/sidekiq_testing_enabled_spec.rb
167
170
  - spec/lib/sidekiq_unique_ext_spec.rb
168
171
  - spec/lib/unlock_order_spec.rb
169
172
  - spec/spec_helper.rb
173
+ - spec/support/another_unique_worker.rb
170
174
  - spec/support/my_worker.rb
171
175
  - spec/support/sidekiq_meta.rb
172
176
  - spec/support/unique_worker.rb