semian 0.7.8 → 0.7.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/semian/redis.rb +15 -1
- data/lib/semian/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 84a146123d366cf81b13b36d9038f7338722647a
|
4
|
+
data.tar.gz: 05cf06fd875a0b989d348c17bae7206b06bf07a4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 286c3a3a02aa7ecc68dc673baf15ece2c0693b186378f939d2ea5d77f30fbca6eb4f64a3019ea44cae6a35e21c02d56afec4340b1db41e6b3a9b39d638692204
|
7
|
+
data.tar.gz: d2e1d56be8743f82bca4da45c632f5f0bfa23b36d137c1d11497455f60cd4d8faefc90416ee6941a788dfef1a604fae22e4ccb19379a2658431b01f314983d47
|
data/lib/semian/redis.rb
CHANGED
@@ -12,6 +12,9 @@ class Redis
|
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
|
+
class OutOfMemoryError < Redis::CommandError
|
16
|
+
end
|
17
|
+
|
15
18
|
ResourceBusyError = Class.new(SemianError)
|
16
19
|
CircuitOpenError = Class.new(SemianError)
|
17
20
|
ResolveError = Class.new(SemianError)
|
@@ -69,7 +72,11 @@ module Semian
|
|
69
72
|
end
|
70
73
|
|
71
74
|
def io(&block)
|
72
|
-
acquire_semian_resource(adapter: :redis, scope: :query)
|
75
|
+
acquire_semian_resource(adapter: :redis, scope: :query) do
|
76
|
+
reply = raw_io(&block)
|
77
|
+
raise_if_out_of_memory(reply)
|
78
|
+
reply
|
79
|
+
end
|
73
80
|
end
|
74
81
|
|
75
82
|
def connect
|
@@ -89,6 +96,7 @@ module Semian
|
|
89
96
|
[
|
90
97
|
::Redis::BaseConnectionError,
|
91
98
|
::Errno::EINVAL, # Hiredis bug: https://github.com/redis/hiredis-rb/issues/21
|
99
|
+
::Redis::OutOfMemoryError,
|
92
100
|
]
|
93
101
|
end
|
94
102
|
|
@@ -96,6 +104,12 @@ module Semian
|
|
96
104
|
return options[:semian] if options.key?(:semian)
|
97
105
|
return options['semian'.freeze] if options.key?('semian'.freeze)
|
98
106
|
end
|
107
|
+
|
108
|
+
def raise_if_out_of_memory(reply)
|
109
|
+
return unless reply.is_a?(::Redis::CommandError)
|
110
|
+
return unless reply.message == "OOM command not allowed when used memory > 'maxmemory'."
|
111
|
+
raise ::Redis::OutOfMemoryError.new(reply.message)
|
112
|
+
end
|
99
113
|
end
|
100
114
|
end
|
101
115
|
|
data/lib/semian/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: semian
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scott Francis
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2018-04-
|
13
|
+
date: 2018-04-09 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rake-compiler
|