sidekiq_unique_retries 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 6577679bf6a5b58b52e3e632538c8facc8508423
4
- data.tar.gz: b0a56f52bca88b9dd8970284575dbb803521a9ed
2
+ SHA256:
3
+ metadata.gz: 73ec4f18c7a7f625a0f3ac3b64cfd6746d17d63216bde3091d8932a5accf6d30
4
+ data.tar.gz: 7810a2cc1ae216e80f277ae8ebb8745ba1d94e61bc4ee968b8d876a54a307d56
5
5
  SHA512:
6
- metadata.gz: e0886eb08c1f1de23a4afaff414ef409e688305e264ad78a62855476ce0f36e996b6ed064ecdeae4f969818f2aba4f4ee65da5280d1cd0458946f2c93b595af5
7
- data.tar.gz: c47f7c0a862c39a336480c1bf86626eeef319749f009a6bed789174f4a5bd0b1adb9fe9303f7c311c84d29064cd9af331f65a9e11efe9c2646dda12c04556fbe
6
+ metadata.gz: d829b790f6be6871a5f87e96dbe0f4da54a11b40a1035fb4558a509f4ac1d8926f988aa63f57e2433982feb87e454e3f5211053908b8e8bcbc8eaeea8fae87da
7
+ data.tar.gz: 2315dd54cbe375f8e3159864a1464fa05c865e9628d8a6cf6a27d340c60191b90425e72b2cdff62ce1026cf25eebe461d9c038cac423e911279e36edc5caa296
@@ -0,0 +1,4 @@
1
+ # Changelog
2
+
3
+ ## 0.2.0
4
+ * Allow multiple retries for `while_executing` lock strategy because this is not unique lock actually
@@ -1,12 +1,19 @@
1
1
  module SidekiqUniqueRetries
2
2
  module Adapters
3
3
  class SidekiqUniqueJobs
4
+ UNIQUE_RETRY_LOCKS = %w[
5
+ until_executing
6
+ until_executed
7
+ until_timeout
8
+ until_and_while_executing
9
+ ].freeze
4
10
 
5
11
  JOB_ID_KEY = 'jid'.freeze
6
- UNIQUE_DIGEST_KEY = 'unique_digest'.freeze
12
+ LOCK_KEY = 'unique'.freeze
13
+ DIGEST_KEY = 'unique_digest'.freeze
7
14
 
8
15
  def lockable?(item)
9
- item.key?(UNIQUE_DIGEST_KEY)
16
+ UNIQUE_RETRY_LOCKS.include?(item[LOCK_KEY])
10
17
  end
11
18
 
12
19
  def job_id(item)
@@ -14,9 +21,8 @@ module SidekiqUniqueRetries
14
21
  end
15
22
 
16
23
  def unique_digest(item)
17
- item.fetch(UNIQUE_DIGEST_KEY)
24
+ item.fetch(DIGEST_KEY)
18
25
  end
19
-
20
26
  end
21
27
  end
22
28
  end
@@ -3,7 +3,6 @@ require 'sidekiq/api'
3
3
  module SidekiqUniqueRetries
4
4
  module Extensions
5
5
  module SortedEntry
6
-
7
6
  def delete
8
7
  if SidekiqUniqueRetries.lockable?(item)
9
8
  SidekiqUniqueRetries.unlock(item)
@@ -27,7 +26,6 @@ module SidekiqUniqueRetries
27
26
 
28
27
  super
29
28
  end
30
-
31
29
  end
32
30
  end
33
31
  end
@@ -3,13 +3,16 @@ require 'sidekiq/job_retry'
3
3
  module SidekiqUniqueRetries
4
4
  module Extensions
5
5
  module JobRetry
6
-
7
6
  def attempt_retry(worker, msg, queue, exception)
8
7
  if SidekiqUniqueRetries.lockable?(msg)
9
- raise exception unless SidekiqUniqueRetries.lock(msg)
8
+ if SidekiqUniqueRetries.lock(msg)
9
+ super
10
+ else
11
+ logger.info { "Ignore retry for #{msg['class']} job #{msg['jid']}" }
12
+ end
13
+ else
14
+ super
10
15
  end
11
-
12
- super(worker, msg, queue, exception)
13
16
  end
14
17
 
15
18
  def retries_exhausted(worker, msg, exception)
@@ -17,9 +20,8 @@ module SidekiqUniqueRetries
17
20
  SidekiqUniqueRetries.unlock(msg)
18
21
  end
19
22
 
20
- super(worker, msg, exception)
23
+ super
21
24
  end
22
-
23
25
  end
24
26
  end
25
27
  end
@@ -48,5 +48,4 @@ module SidekiqUniqueRetries
48
48
  end
49
49
  end
50
50
  end
51
-
52
51
  end
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "sidekiq_unique_retries"
7
- spec.version = "0.1.0"
7
+ spec.version = "0.2.0"
8
8
  spec.authors = ["Andriy Yanko"]
9
9
  spec.email = ["andriy.yanko@railsware.com"]
10
10
 
@@ -19,9 +19,9 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ["lib"]
21
21
 
22
- spec.add_dependency "sidekiq", ">= 5.0.0"
22
+ spec.add_dependency "sidekiq", "~> 5.2"
23
23
 
24
- spec.add_development_dependency "bundler", "~> 1.15"
25
- spec.add_development_dependency "rake", "~> 10.0"
24
+ spec.add_development_dependency "bundler", "~> 2.1"
25
+ spec.add_development_dependency "rake", "~> 12.3.3"
26
26
  spec.add_development_dependency "rspec", "~> 3.0"
27
27
  end
metadata CHANGED
@@ -1,57 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq_unique_retries
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andriy Yanko
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-09-11 00:00:00.000000000 Z
11
+ date: 2020-03-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sidekiq
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 5.0.0
19
+ version: '5.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 5.0.0
26
+ version: '5.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.15'
33
+ version: '2.1'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.15'
40
+ version: '2.1'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '10.0'
47
+ version: 12.3.3
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '10.0'
54
+ version: 12.3.3
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -76,6 +76,7 @@ files:
76
76
  - ".gitignore"
77
77
  - ".rspec"
78
78
  - ".travis.yml"
79
+ - CHANGELOG.md
79
80
  - Gemfile
80
81
  - README.md
81
82
  - Rakefile
@@ -106,10 +107,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
106
107
  - !ruby/object:Gem::Version
107
108
  version: '0'
108
109
  requirements: []
109
- rubyforge_project:
110
- rubygems_version: 2.6.11
110
+ rubygems_version: 3.0.3
111
111
  signing_key:
112
112
  specification_version: 4
113
113
  summary: Uniqueness for Sidekiq Retries
114
114
  test_files: []
115
- has_rdoc: