idempo 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/idempo/redis_backend.rb +4 -4
- data/lib/idempo/version.rb +1 -1
- data/lib/idempo.rb +3 -3
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8f5d862a9c8b731c1678447b00637cbeee39a0713503455f39c6bbbe1906090e
|
4
|
+
data.tar.gz: e482c6af0896c61131373ce7446557bb2ce57be5f2efc120241ac814fc28de5c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9bdd48ca7387d456e52d7ea1813116761399d7586353f56885b6458361078b32ba0a93edcd160d874623ed9313bfc39be6a81cd2d70f32c4863b5dc60134cf4f
|
7
|
+
data.tar.gz: 458308ac0a75adda6ed83d6b018670d709ff5e5908ed3d0845da2b57d78100f3c9d5a6b432463908378c16637ef6ae14e607c9e3d5edde196068b12c72272646
|
data/lib/idempo/redis_backend.rb
CHANGED
@@ -12,7 +12,7 @@ class Idempo::RedisBackend
|
|
12
12
|
return "ok"
|
13
13
|
else
|
14
14
|
-- someone else holds the lock or it has expired
|
15
|
-
return "
|
15
|
+
return "stale"
|
16
16
|
end
|
17
17
|
EOL
|
18
18
|
|
@@ -25,7 +25,7 @@ class Idempo::RedisBackend
|
|
25
25
|
redis.call("set", KEYS[2], ARGV[2], "px", ARGV[3])
|
26
26
|
return "ok"
|
27
27
|
else
|
28
|
-
return "
|
28
|
+
return "stale"
|
29
29
|
end
|
30
30
|
EOL
|
31
31
|
|
@@ -54,7 +54,7 @@ class Idempo::RedisBackend
|
|
54
54
|
Idempo::RedisBackend.eval_or_evalsha(r, SET_WITH_TTL_IF_LOCK_STILL_HELD_SCRIPT, keys: keys, argv: argv)
|
55
55
|
end
|
56
56
|
|
57
|
-
Measurometer.increment_counter('idempo.
|
57
|
+
Measurometer.increment_counter('idempo.redis_lock_state_when_saving_response', 1, state: outcome_of_save)
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
@@ -84,7 +84,7 @@ class Idempo::RedisBackend
|
|
84
84
|
outcome_of_del = @redis_pool.with do |r|
|
85
85
|
Idempo::RedisBackend.eval_or_evalsha(r, DELETE_BY_KEY_AND_VALUE_SCRIPT, keys: [lock_key], argv: [token])
|
86
86
|
end
|
87
|
-
Measurometer.increment_counter('
|
87
|
+
Measurometer.increment_counter('idempo.redis_lock_state_when_releasing_lock', 1, state: outcome_of_del)
|
88
88
|
end
|
89
89
|
end
|
90
90
|
|
data/lib/idempo/version.rb
CHANGED
data/lib/idempo.rb
CHANGED
@@ -41,7 +41,7 @@ class Idempo
|
|
41
41
|
|
42
42
|
@backend.with_idempotency_key(request_key) do |store|
|
43
43
|
if stored_response = store.lookup
|
44
|
-
Measurometer.increment_counter('idempo.
|
44
|
+
Measurometer.increment_counter('idempo.responses_served_from', 1, from: 'store')
|
45
45
|
return from_persisted_response(stored_response)
|
46
46
|
end
|
47
47
|
|
@@ -54,7 +54,7 @@ class Idempo
|
|
54
54
|
store.store(data: marshaled_response, ttl: expires_in_seconds)
|
55
55
|
end
|
56
56
|
|
57
|
-
Measurometer.increment_counter('idempo.
|
57
|
+
Measurometer.increment_counter('idempo.responses_served_from', 1, from: 'freshly-generated')
|
58
58
|
[status, headers, body]
|
59
59
|
end
|
60
60
|
rescue MalformedIdempotencyKey
|
@@ -66,7 +66,7 @@ class Idempo
|
|
66
66
|
}
|
67
67
|
[400, {'Content-Type' => 'application/json'}, [JSON.pretty_generate(res)]]
|
68
68
|
rescue ConcurrentRequest
|
69
|
-
Measurometer.increment_counter('idempo.
|
69
|
+
Measurometer.increment_counter('idempo.responses_served_from', 1, from: 'conflict-concurrent-request')
|
70
70
|
res = {
|
71
71
|
ok: false,
|
72
72
|
error: {
|