redis_queued_locks 0.0.38 → 0.0.40
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 +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);
|