redis_queued_locks 0.0.26 → 0.0.27

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
2
  SHA256:
3
- metadata.gz: f699e402d9f382a72d2964ffe5d35b4d73b37a7c22f9f412fe08f9c7edd30cd7
4
- data.tar.gz: aee1e0b45b2819ff2583ade2f51218a408dd7d734a415ec5c30f74de37d31511
3
+ metadata.gz: f9d7bd4d48e34f520e1e7675030a15a346eca0f89429b500b7937ef36cf8107b
4
+ data.tar.gz: 7c331e2a5d728a78ce8009bc6d1e97621bab61ad336683e45b52063f2fff1715
5
5
  SHA512:
6
- metadata.gz: 3f5b756ebd9fe435e4f99602c9dc23d16142a73a1f06d3a6bf30edf61326224064ab66cf47f44d56af80a2cf3cdc2249f06064d93164922c8c236ba005ae4b49
7
- data.tar.gz: e72b3d3edcbbe538597157ce4d23c9ff149ad4547d30f82b063323d80e20eac87a0c8cc2cdc24fb81414d115932e0f274253c0d22dd0e5a5d7b62b22f0276948
6
+ metadata.gz: 33491d78f0a847f90ed27792ae3edd90388d78fb4098cd6eae00b85ea13c5353523f252f1cf83e01918bce502b3ad5735825e5f642122b0a15f6d301df12f5f1
7
+ data.tar.gz: a18017f9c1bc2559fbd6c723ce1fccc99c7041f6952e535dba31e14a5029abf43c215c6abcd0aaf514d4d670614882255e2b356c3c214a83b77265a826fe16e0
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.0.27] - 2024-03-21
4
+ ### Changed
5
+ - Better acquier position accuracy: acquier position in lock queue
6
+ should be represented as EPOCH in seconds+microseconds (previously: simply in seconds);
7
+
3
8
  ## [0.0.26] - 2024-03-21
4
9
  ### Added
5
10
  - Logging: add `acquier_id`;
@@ -14,7 +19,7 @@
14
19
 
15
20
  ## [0.0.23] - 2024-03-21
16
21
  ### Changed
17
- - Composed redis commands are invoked on the one conenction
22
+ - Composed redis commands are invoked from the same *one* conenction
18
23
  (instead of mutiple connection fetching from redis connection pool on each redis command);
19
24
 
20
25
  ## [0.0.22] - 2024-03-21
@@ -147,7 +147,7 @@ module RedisQueuedLocks::Acquier::AcquireLock::TryToLock
147
147
  'HSET',
148
148
  lock_key,
149
149
  'acq_id', acquier_id,
150
- 'ts', (timestamp = Time.now.to_i),
150
+ 'ts', (timestamp = Time.now.to_f),
151
151
  'ini_ttl', ttl
152
152
  )
153
153
 
@@ -11,7 +11,7 @@ module RedisQueuedLocks::Acquier::LockInfo
11
11
  # - result format: {
12
12
  # lock_key: "rql:lock:your_lockname", # acquired lock key
13
13
  # acq_id: "rql:acq:process_id/thread_id", # lock acquier identifier
14
- # ts: 123456789, # <locked at> time stamp (epoch)
14
+ # ts: 123456789.2649841, # <locked at> time stamp (epoch, seconds.microseconds)
15
15
  # ini_ttl: 123456789, # initial lock key ttl (milliseconds),
16
16
  # rem_ttl: 123456789, # remaining lock key ttl (milliseconds)
17
17
  # }
@@ -46,7 +46,7 @@ module RedisQueuedLocks::Acquier::LockInfo
46
46
  {
47
47
  lock_key: lock_key,
48
48
  acq_id: hget_cmd_res['acq_id'],
49
- ts: Integer(hget_cmd_res['ts']),
49
+ ts: Float(hget_cmd_res['ts']),
50
50
  ini_ttl: Integer(hget_cmd_res['ini_ttl']),
51
51
  rem_ttl: ((pttl_cmd_res == -1) ? Infinity : pttl_cmd_res)
52
52
  }
@@ -65,21 +65,21 @@ module RedisQueuedLocks::Resource
65
65
  "rql:lock_queue:#{lock_name}"
66
66
  end
67
67
 
68
- # @return [Integer] Redis's <Set> score that is calculated from the time (epoch) as an integer.
68
+ # @return [Float] Redis's <Set> score that is calculated from the time (epoch) as a float.
69
69
  #
70
70
  # @api private
71
71
  # @since 0.1.0
72
72
  def calc_initial_acquier_position
73
- Time.now.to_i
73
+ Time.now.to_f
74
74
  end
75
75
 
76
76
  # @param queue_ttl [Integer] In seconds
77
- # @return [Integer] Redis's <Set> score barrier before wich all other acquiers are removed.
77
+ # @return [Float] Redis's <Set> score barrier for acquiers that should be removed from queue.
78
78
  #
79
79
  # @api private
80
80
  # @since 0.1.0
81
81
  def acquier_dead_score(queue_ttl)
82
- Time.now.to_i - queue_ttl
82
+ Time.now.to_f - queue_ttl
83
83
  end
84
84
 
85
85
  # @param lock_queue [String]
@@ -5,6 +5,6 @@ module RedisQueuedLocks
5
5
  #
6
6
  # @api public
7
7
  # @since 0.0.1
8
- # @version 0.0.26
9
- VERSION = '0.0.26'
8
+ # @version 0.0.27
9
+ VERSION = '0.0.27'
10
10
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redis_queued_locks
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.26
4
+ version: 0.0.27
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rustam Ibragimov