basicjrpc 0.1.31 → 0.1.32
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/lib/basicjrpc/client.rb +16 -3
- data/lib/basicjrpc/server.rb +9 -1
- data/lib/basicjrpc/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: 2418cb1148189c391005749334e2fe9e7b87036b
|
4
|
+
data.tar.gz: 3619e7f940db3e2f5cf851e73ae27847fa7697fc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3436a59c73df61b4e09d34fa843947dda305d12b7c6bcb9993a9a48e60a255d8ea00ad1016be1fc15fd08153391cd124d4f21bb6d54d88673cb62d53192f137c
|
7
|
+
data.tar.gz: a588da73a917506f97cb5c06ea937578796ad1c1b38ef9d28bf177a12a049949b161da0b3e636d0ac839d303f7fdb04f211511a57ce75e20d5cd3a6ff5b84060
|
data/lib/basicjrpc/client.rb
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
require 'timeout'
|
2
2
|
|
3
|
+
|
4
|
+
##### WARNING
|
5
|
+
##### WARNING
|
6
|
+
##### THERE IS NO DEAD-CLIENT PROTECTION
|
7
|
+
##### THIS WILL DAMAGE UPSTREAM REQUESTS UNTIL RELOADED
|
8
|
+
|
3
9
|
module BasicJRPC
|
4
10
|
|
5
11
|
# Responding Client
|
@@ -13,27 +19,30 @@ module BasicJRPC
|
|
13
19
|
end
|
14
20
|
|
15
21
|
def method_missing(m, *args, &block)
|
16
|
-
send_request({ :method_name => m, :method_arguments => args })
|
22
|
+
send_request({ :method_name => m, :method_arguments => args, :callers => caller.first(10) })
|
17
23
|
end
|
18
24
|
|
19
25
|
def send_request payload
|
20
|
-
|
21
26
|
payload[:message_id] = SecureRandom.uuid
|
22
27
|
payload[:instance_id] = @instance_id
|
23
28
|
payload[:response] = true
|
24
29
|
|
25
30
|
my_message = false
|
26
31
|
|
32
|
+
puts "Writing Message #{payload[:message_id]} #{payload[:method_name]}"
|
27
33
|
@nsq_producer.write(Oj.dump(payload))
|
28
34
|
|
29
35
|
Timeout::timeout(5) {
|
30
36
|
Oj.load(Redis.new(host: "redis").blpop(payload[:message_id])[1])
|
31
37
|
}
|
38
|
+
rescue Exception => e
|
39
|
+
terminate
|
40
|
+
raise e
|
32
41
|
end
|
33
42
|
|
34
43
|
# This must be called
|
35
44
|
def terminate
|
36
|
-
nsq_producer.terminate
|
45
|
+
@nsq_producer.terminate
|
37
46
|
end
|
38
47
|
end
|
39
48
|
|
@@ -42,7 +51,11 @@ module BasicJRPC
|
|
42
51
|
def send_request payload
|
43
52
|
payload[:message_id] = SecureRandom.uuid
|
44
53
|
payload[:response] = true
|
54
|
+
payload[:caller] = caller.first(10)
|
45
55
|
@nsq_producer.write(Oj.dump(payload))
|
56
|
+
rescue Exception => e
|
57
|
+
terminate
|
58
|
+
raise e
|
46
59
|
end
|
47
60
|
end
|
48
61
|
|
data/lib/basicjrpc/server.rb
CHANGED
@@ -12,7 +12,7 @@ module BasicJRPC
|
|
12
12
|
while true
|
13
13
|
message = @nsq_consumer.pop
|
14
14
|
payload = Oj.load(message.body)
|
15
|
-
puts "Processing message #{payload.method_name} #{payload.method_arguments}"
|
15
|
+
puts "Processing message #{payload.method_id} #{payload.method_name} #{payload.method_arguments} #{payload.callers}"
|
16
16
|
|
17
17
|
# Should always return a data object
|
18
18
|
response = @injected_class.send(payload.method_name, *payload.method_arguments)
|
@@ -20,6 +20,14 @@ module BasicJRPC
|
|
20
20
|
Redis.new(host: "redis").rpush(payload.message_id, Oj.dump(response))
|
21
21
|
message.finish
|
22
22
|
end
|
23
|
+
rescue Exception => e
|
24
|
+
message.finish
|
25
|
+
terminate
|
26
|
+
raise e
|
27
|
+
end
|
28
|
+
|
29
|
+
def terminate
|
30
|
+
@nsq_consumer.terminate
|
23
31
|
end
|
24
32
|
|
25
33
|
end
|
data/lib/basicjrpc/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: basicjrpc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.32
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Simpson
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-09-
|
11
|
+
date: 2016-09-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|