nats-rpc 0.1.0 → 0.2.0
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/Gemfile.lock +5 -1
- data/lib/nats/rpc/client.rb +4 -1
- data/lib/nats/rpc/servant.rb +9 -7
- data/lib/nats/rpc/version.rb +1 -1
- data/lib/nats/rpc.rb +28 -0
- data/nats-rpc.gemspec +1 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 44fabfaa7cd97660834477be41c1d0e5c5a356486ff1c75c94c0bc630606b3cd
|
4
|
+
data.tar.gz: 8a11b1df463d9c93e55398b67d81b1199128f43bf552e3868d98d685ee901288
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d1420dda28a352702bb562d5b50282938112e493774735ca303aa8c8fe0504bc2507cece10242b86ec5c4774ef8dcce4e04109bb965eb3aa72a625b605c65a2f
|
7
|
+
data.tar.gz: d4abe8ef3971b379505ad3d3eb4fe940619bb37f5d932f290c83b529a14aa10eaf7049893d3c569a62fd012c0204d77986a3633eb894d4fddaa320a0284f3876
|
data/Gemfile.lock
CHANGED
@@ -1,12 +1,16 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
nats-rpc (0.
|
4
|
+
nats-rpc (0.2.0)
|
5
|
+
binding_of_caller
|
5
6
|
nats-pure
|
6
7
|
|
7
8
|
GEM
|
8
9
|
remote: https://rubygems.org/
|
9
10
|
specs:
|
11
|
+
binding_of_caller (0.8.0)
|
12
|
+
debug_inspector (>= 0.0.1)
|
13
|
+
debug_inspector (0.0.3)
|
10
14
|
diff-lcs (1.3)
|
11
15
|
nats-pure (0.5.0)
|
12
16
|
rake (10.5.0)
|
data/lib/nats/rpc/client.rb
CHANGED
@@ -20,7 +20,10 @@ module NATS
|
|
20
20
|
if data["status"] == "error"
|
21
21
|
case data["code"]
|
22
22
|
when 2.0
|
23
|
-
|
23
|
+
rex = RemoteError.new payload["message"]
|
24
|
+
rex.set_backtrace payload["backtrace"]
|
25
|
+
|
26
|
+
raise rex
|
24
27
|
else
|
25
28
|
raise "Error code: #{data["code"]}"
|
26
29
|
end
|
data/lib/nats/rpc/servant.rb
CHANGED
@@ -55,7 +55,14 @@ module NATS
|
|
55
55
|
end
|
56
56
|
block_call_stopped_at = Time.now
|
57
57
|
|
58
|
-
|
58
|
+
if block_call_exception
|
59
|
+
err_msg = error_message(2.0, {
|
60
|
+
message: block_call_exception.message,
|
61
|
+
backtrace: block_call_exception.backtrace
|
62
|
+
})
|
63
|
+
|
64
|
+
return @nats.publish reply, err_msg
|
65
|
+
end
|
59
66
|
|
60
67
|
value_as_json = nil
|
61
68
|
begin
|
@@ -82,7 +89,7 @@ module NATS
|
|
82
89
|
last_count_messages = 0
|
83
90
|
loop do
|
84
91
|
throughput = (last_count_messages - @count_messages).abs
|
85
|
-
|
92
|
+
NATS::RPC.stats "s: #{subscribe_to} q: #{opts[:queue]} - msg: #{@count_messages} tput: #{throughput}/s errs json_parse: #{@count_json_parse_errors} block_call: #{@count_block_call_errors} to_json: #{@count_to_json_errors}"
|
86
93
|
last_count_messages = @count_messages
|
87
94
|
sleep 1
|
88
95
|
end
|
@@ -98,11 +105,6 @@ module NATS
|
|
98
105
|
servant: @id
|
99
106
|
}.to_json
|
100
107
|
end
|
101
|
-
|
102
|
-
def debug(str)
|
103
|
-
return unless ENV["NATS_RPC_DEBUG"] == "true"
|
104
|
-
puts str
|
105
|
-
end
|
106
108
|
end
|
107
109
|
end
|
108
110
|
end
|
data/lib/nats/rpc/version.rb
CHANGED
data/lib/nats/rpc.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
$stdout.sync = true
|
2
2
|
require 'nats/io/client'
|
3
3
|
require 'json'
|
4
|
+
require 'binding_of_caller'
|
4
5
|
|
5
6
|
require_relative "rpc/version"
|
6
7
|
require_relative "rpc/servant"
|
@@ -27,5 +28,32 @@ module NATS
|
|
27
28
|
|
28
29
|
opts
|
29
30
|
end
|
31
|
+
|
32
|
+
def self.stats(str)
|
33
|
+
return unless ENV["NATS_RPC_STATS"] == "true"
|
34
|
+
puts str
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.debug(*args)
|
38
|
+
return unless ENV["NATS_RPC_DEBUG"] == "true"
|
39
|
+
|
40
|
+
calling_instance_or_class_name = binding.of_caller(1).eval("self.class.name")
|
41
|
+
calling_method_name = caller_locations(1,1)[0].label
|
42
|
+
|
43
|
+
print "DEBUG #{calling_instance_or_class_name}##{calling_method_name} - "
|
44
|
+
inspected_arg_strings = []
|
45
|
+
for arg in args do
|
46
|
+
inspected_arg_strings << if arg.is_a? String
|
47
|
+
arg
|
48
|
+
elsif
|
49
|
+
arg.is_a? Array
|
50
|
+
"\n" + arg.inspect.split("\",").join("\n")
|
51
|
+
else
|
52
|
+
arg.inspect
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
puts inspected_arg_strings.join " "
|
57
|
+
end
|
30
58
|
end
|
31
59
|
end
|
data/nats-rpc.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nats-rpc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matti Paksula
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-07-
|
11
|
+
date: 2018-07-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nats-pure
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: binding_of_caller
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|