activejob-uniqueness 0.2.5 → 0.3.1

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
2
  SHA256:
3
- metadata.gz: 9554ab5de5c83f0af7528f4618155b8cd4b68673760fdc7c6113bce6fd2f2f53
4
- data.tar.gz: 69849f32a26a29f2c644c2a6749c7ca45221f2d04650d369880a2e5050005d0f
3
+ metadata.gz: 120483e1019cb9e65e1f270ae21d040d17a37d54e7fa6616800cdc7ff8180251
4
+ data.tar.gz: c9b299e5e444e19cb1f2a3230447eb44ebd719bb2a93e3c0b2abe22f77782e47
5
5
  SHA512:
6
- metadata.gz: c661da1de663277171fd5d8fff5a89f54c1dee158c26383863b359439e64e3a29d4d4a611ec16a6e7e13c953eea1abce017d225e242a9877a423ffd8a1aaa486
7
- data.tar.gz: 4300874d054bb6b33eb0e6960fe63c2497b193e6cca64e32bf2b77a3d886c21919478e915434f995855f625cacc36155be0519fc296026de5a7cd2cad5038795
6
+ metadata.gz: 5742577b735a3749612b194b6d8912a72938ffaab6b2cb470448fce0342c39a265e99a0fa043f405eaf90ef03f1844fa913331095d13a9a9f968ece3e75265fa
7
+ data.tar.gz: 4d22df0933705d5aa22fec6d47add7a6d61e6adab20afb9d8a0557cc6c35907d75491ac07a1bd0e71ea2e4fb59a6d6468ece7e8387c2ee954cc6e1078aa55326
data/CHANGELOG.md CHANGED
@@ -3,8 +3,24 @@ All notable changes to this project will be documented in this file.
3
3
 
4
4
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
5
5
 
6
- ## [Unreleased](https://github.com/veeqo/activejob-uniqueness/compare/v0.2.5...HEAD)
6
+ ## [Unreleased](https://github.com/veeqo/activejob-uniqueness/compare/v0.3.1...HEAD)
7
7
 
8
+ ## [0.3.1](https://github.com/veeqo/activejob-uniqueness/compare/v0.3.0...v0.3.1) - 2023-10-30
9
+
10
+ ### Fixed
11
+
12
+ - [#67](https://github.com/veeqo/activejob-uniqueness/pull/67) Random redis errors on delete_lock by [@laurafeier](https://github.com/laurafeier)
13
+
14
+ ## [0.3.0](https://github.com/veeqo/activejob-uniqueness/compare/v0.2.5...v0.3.0) - 2023-10-20
15
+
16
+ ### Added
17
+ - [#66](https://github.com/veeqo/activejob-uniqueness/pull/66) Activejob 7.1 support by [@laurafeier](https://github.com/laurafeier)
18
+
19
+ ### Changed
20
+ - [#57](https://github.com/veeqo/activejob-uniqueness/pull/57) Upgrade to Redlock 2 & use redis-client by [@bmulholland](https://github.com/bmulholland)
21
+
22
+ ### Removed
23
+ - Support fo Redlock v1 is removed. Switching to `RedisClient` is [a breaking change of Redlock v2](https://github.com/leandromoreira/redlock-rb/blob/main/CHANGELOG.md#200---2023-02-09).
8
24
 
9
25
  ## [0.2.5](https://github.com/veeqo/activejob-uniqueness/compare/v0.2.4...v0.2.5) - 2023-02-01
10
26
 
@@ -9,8 +9,8 @@ module ActiveJob
9
9
  # Unlocks a resource by resource only.
10
10
  def delete_lock(resource)
11
11
  @servers.each do |server|
12
- server.instance_variable_get(:@redis).with do |conn|
13
- conn.del resource
12
+ synced_redis_connection(server) do |conn|
13
+ conn.call('DEL', resource)
14
14
  end
15
15
  end
16
16
 
@@ -20,13 +20,23 @@ module ActiveJob
20
20
  # Unlocks multiple resources by key wildcard.
21
21
  def delete_locks(wildcard)
22
22
  @servers.each do |server|
23
- server.instance_variable_get(:@redis).with do |conn|
24
- conn.scan_each(match: wildcard).each { |key| conn.del key }
23
+ synced_redis_connection(server) do |conn|
24
+ conn.scan('MATCH', wildcard).each { |key| conn.call('DEL', key) }
25
25
  end
26
26
  end
27
27
 
28
28
  true
29
29
  end
30
+
31
+ private
32
+
33
+ def synced_redis_connection(server, &block)
34
+ if server.respond_to?(:synchronize)
35
+ server.synchronize(&block)
36
+ else
37
+ server.instance_variable_get(:@redis).with(&block)
38
+ end
39
+ end
30
40
  end
31
41
  end
32
42
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module ActiveJob
4
4
  module Uniqueness
5
- VERSION = '0.2.5'
5
+ VERSION = '0.3.1'
6
6
  end
7
7
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  ActiveJob::Uniqueness.configure do |config|
4
4
  # Global default expiration for lock keys. Each job can define its own ttl via :lock_ttl option.
5
- # Stategy :until_and_while_executing also accept :on_runtime_ttl option.
5
+ # Strategy :until_and_while_executing also accepts :on_runtime_ttl option.
6
6
  #
7
7
  # config.lock_ttl = 1.day
8
8
 
@@ -11,7 +11,7 @@ ActiveJob::Uniqueness.configure do |config|
11
11
  # config.lock_prefix = 'activejob_uniqueness'
12
12
 
13
13
  # Default action on lock conflict. Can be set per job.
14
- # Stategy :until_and_while_executing also accept :on_runtime_conflict option.
14
+ # Strategy :until_and_while_executing also accepts :on_runtime_conflict option.
15
15
  # Allowed values are
16
16
  # :raise - raises ActiveJob::Uniqueness::JobNotUnique
17
17
  # :log - instruments ActiveSupport::Notifications and logs event to the ActiveJob::Logger
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activejob-uniqueness
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rustam Sharshenov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-01 00:00:00.000000000 Z
11
+ date: 2023-10-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activejob
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '4.2'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '7.1'
22
+ version: '7.2'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,27 +29,27 @@ dependencies:
29
29
  version: '4.2'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '7.1'
32
+ version: '7.2'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: redlock
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: '1.2'
39
+ version: '2.0'
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
- version: '2'
42
+ version: '3'
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: '1.2'
49
+ version: '2.0'
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
- version: '2'
52
+ version: '3'
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: appraisal
55
55
  requirement: !ruby/object:Gem::Requirement
@@ -82,16 +82,16 @@ dependencies:
82
82
  name: pry-byebug
83
83
  requirement: !ruby/object:Gem::Requirement
84
84
  requirements:
85
- - - ">="
85
+ - - ">"
86
86
  - !ruby/object:Gem::Version
87
- version: '0'
87
+ version: 3.6.0
88
88
  type: :development
89
89
  prerelease: false
90
90
  version_requirements: !ruby/object:Gem::Requirement
91
91
  requirements:
92
- - - ">="
92
+ - - ">"
93
93
  - !ruby/object:Gem::Version
94
- version: '0'
94
+ version: 3.6.0
95
95
  - !ruby/object:Gem::Dependency
96
96
  name: rspec
97
97
  requirement: !ruby/object:Gem::Requirement
@@ -187,7 +187,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
187
187
  - !ruby/object:Gem::Version
188
188
  version: '0'
189
189
  requirements: []
190
- rubygems_version: 3.1.6
190
+ rubygems_version: 3.2.33
191
191
  signing_key:
192
192
  specification_version: 4
193
193
  summary: Ensure uniqueness of your ActiveJob jobs