redis_queued_locks 0.0.38 → 0.0.40
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +3 -0
- data/CHANGELOG.md +32 -0
- data/README.md +393 -78
- data/Rakefile +14 -5
- data/lib/redis_queued_locks/acquier/acquire_lock/try_to_lock.rb +35 -73
- data/lib/redis_queued_locks/acquier/acquire_lock/yield_with_expire.rb +2 -2
- data/lib/redis_queued_locks/acquier/acquire_lock.rb +25 -15
- data/lib/redis_queued_locks/acquier/clear_dead_requests.rb +52 -0
- data/lib/redis_queued_locks/acquier/extend_lock_ttl.rb +21 -2
- data/lib/redis_queued_locks/acquier/lock_info.rb +3 -3
- data/lib/redis_queued_locks/acquier/locks.rb +7 -5
- data/lib/redis_queued_locks/acquier/queues.rb +4 -2
- data/lib/redis_queued_locks/acquier/release_all_locks.rb +14 -13
- data/lib/redis_queued_locks/acquier/release_lock.rb +25 -6
- data/lib/redis_queued_locks/acquier.rb +1 -0
- data/lib/redis_queued_locks/client.rb +96 -17
- data/lib/redis_queued_locks/data.rb +0 -1
- data/lib/redis_queued_locks/version.rb +2 -2
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b46bd07dab8fc9ce3228eb7bb804569a99dfc8f7f65a1eaf085c3af9061ae09e
|
4
|
+
data.tar.gz: 2c9470b5dd4b41a112c93bb891f33ff68f930dc47fd78a37516540249ded415d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a7e0740247300cf79385c477a66bc823621888104887de33c3868cf4d06a2087ae6b2ea972e8844fd148e8e3b0da9468cfaf276f68f5d1be7e3b80f72e0c31fe
|
7
|
+
data.tar.gz: d920cda1d4f89da24123df0cf95595c87c21e1e4ed18495765ae0f78c1714af325f94e8e88a7971e4bb10250dde4f392095e8d19f010e9a5f0341d3d3201dc0c
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,37 @@
|
|
1
1
|
## [Unreleased]
|
2
2
|
|
3
|
+
## [0.0.40] - 2024-04-01
|
4
|
+
### Added
|
5
|
+
- `RedisQueuedLocks::Client#clear_dead_requests` implementation;
|
6
|
+
- Logger and instrumentation are passed everywhere where any changes in Redis (with locks and queus)
|
7
|
+
are expected;
|
8
|
+
- New config `is_timed_by_default` (boolean, `false` by default) that reflects the `timed` option of `#lock` and `#lock!` methods;
|
9
|
+
- Ther result of `#unlock` is changed: added `:lock_res` and `:queue_res` result data in order to reflect
|
10
|
+
what happened inside (`:released` or `:nothing_to_release`) and to adopt to the case when you trying
|
11
|
+
to unlock the non-existent lock;
|
12
|
+
- A lot of documentation updates;
|
13
|
+
- Github CI Workflow;
|
14
|
+
### Changed
|
15
|
+
- `:rel_key_cnt` result of `#clear_locks` is more accurate now;
|
16
|
+
|
17
|
+
## [0.0.39] - 2024-03-31
|
18
|
+
### Added
|
19
|
+
- Logging:
|
20
|
+
- added new log `[redis_queued_locks.fail_fast_or_limits_reached__dequeue]`;
|
21
|
+
- Client:
|
22
|
+
- `#extend_lock_ttl` implementation;
|
23
|
+
### Changed
|
24
|
+
- Removed `RadisQueuedLocks::Debugger.debug(...)` injections;
|
25
|
+
- Instrumentation:
|
26
|
+
- the `:at` payload field of `"redis_queued_locks.explicit_lock_release"` event and
|
27
|
+
`"redis_queued_locks.explicit_all_locks_release"` event is changed from `Integer` to `Float`
|
28
|
+
in order to reflect micro/nano seconds too for more accurate time value;
|
29
|
+
- Lock information:
|
30
|
+
- the lock infrmation extracting now uses `RedisClient#pipelined` instead of `RedisClient#mutli` cuz
|
31
|
+
it is more reasonable for information-oriented logic (the queue information extraction works via `pipelined` invocations for example);
|
32
|
+
- Logging:
|
33
|
+
- log message is used as a `message` (not `pragma`) according to `Logger#debug` signature;
|
34
|
+
|
3
35
|
## [0.0.38] - 2024-03-28
|
4
36
|
### Changed
|
5
37
|
- Minor update (dropped useless constant);
|