redis_queued_locks 0.0.26 → 0.0.27

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