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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f9d7bd4d48e34f520e1e7675030a15a346eca0f89429b500b7937ef36cf8107b
|
4
|
+
data.tar.gz: 7c331e2a5d728a78ce8009bc6d1e97621bab61ad336683e45b52063f2fff1715
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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
|
@@ -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:
|
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 [
|
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.
|
73
|
+
Time.now.to_f
|
74
74
|
end
|
75
75
|
|
76
76
|
# @param queue_ttl [Integer] In seconds
|
77
|
-
# @return [
|
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.
|
82
|
+
Time.now.to_f - queue_ttl
|
83
83
|
end
|
84
84
|
|
85
85
|
# @param lock_queue [String]
|