sidekiq_unique_retries 0.1.0 → 0.2.0

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.
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: