basicjrpc 0.1.25 → 0.1.26

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dc4deab7054ee8cf68379a75cebfd8664f15df55
4
- data.tar.gz: c034a0268fceec519f0628c0e0bd79b96fd7661a
3
+ metadata.gz: 5b38c1ce4deae05d276f3e1e8c619c6136bd010d
4
+ data.tar.gz: a791ccf4dc75856d9e23993e16d704c24309ba98
5
5
  SHA512:
6
- metadata.gz: 2c77285fc786203f8ebd7ae7fb43f2c98fae6629776cc7cb172c8d3194cdfdfe22454e51412ffb15af524ae494606c744ed43a6580b745535fd9606c9c8c6407
7
- data.tar.gz: 4c8d48af144440d444a49eebcb0e79dc3a2206dfadb381fc2765ace56947a62fb59e355a97c39e00a376fba9c9b95dff6bb3dca3a1ceef6977e453b794bef71f
6
+ metadata.gz: d09aa5a8d7d70605673cd23f9a9c20e5097b0eccaf75785d922e1cfbdcbca018b458c636975a1959af68a81a9a7b8d72b985035311a028e6bd7752a51069a25c
7
+ data.tar.gz: 5df95f5a7bcdd674490caafa4de376a84a229ea769d344ef851bea19b5dce4a5e80d5e00d166db6d3a1754c1d3cde5dec6e36a7efcf8c440bf632c9452bcc4e0
data/basicjrpc.gemspec CHANGED
@@ -22,6 +22,7 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency "bundler", "~> 1.11"
23
23
  spec.add_development_dependency "rake", "~> 10.0"
24
24
  spec.add_runtime_dependency 'nsq-ruby'
25
+ spec.add_runtime_dependency 'redis'
25
26
  spec.add_runtime_dependency 'oj'
26
27
  spec.add_runtime_dependency 'require_all'
27
28
  end
@@ -7,6 +7,8 @@ module BasicJRPC
7
7
  @queue = queue
8
8
  @payload = {}
9
9
  @timeout = timeout
10
+ @instance_id = SecureRandom.uuid
11
+ @consumer = Nsq::Consumer.new(nsqlookupd: 'dockerlb:4161',topic: "#{@queue}-response", channel: @instance_id)
10
12
  end
11
13
 
12
14
  def method_missing(m, *args, &block)
@@ -15,11 +17,23 @@ module BasicJRPC
15
17
 
16
18
  def send_request payload
17
19
  payload[:message_id] = SecureRandom.uuid
20
+ payload[:instance_id] = @instance_id
18
21
  payload[:response] = true
22
+
23
+ my_message = false
19
24
 
20
25
  @nsq_producer.write(Oj.dump(payload))
21
-
22
- return Oj.load(Nsq::Consumer.new(nsqlookupd: 'dockerlb:4161',topic: payload[:message_id], channel: 'client').pop.body)
26
+
27
+ # while !my_message
28
+ # message = @consumer.pop
29
+ # decoded_message = Oj.load(message.body)
30
+ # my_message = decoded_message.response if decoded_message.message_id == payload.message_id
31
+ # end
32
+
33
+ # message.finish
34
+ # return my_message
35
+
36
+ Oj.load(Redis.new(host: "redis").blpop(payload[:message_id])[1])
23
37
  end
24
38
  end
25
39
 
@@ -10,14 +10,18 @@ module BasicJRPC
10
10
  def listen
11
11
  puts "Listening..."
12
12
  while true
13
- payload = Oj.load(@nsq_consumer.pop.body)
13
+ message = @nsq_consumer.pop
14
+ payload = Oj.load(message.body)
14
15
  puts "Processing message #{payload.method_name} #{payload.method_arguments}"
15
16
 
16
17
  # Should always return a data object
17
18
  response = @injected_class.send(payload.method_name, *payload.method_arguments)
18
19
 
19
20
  # Bounce the response back if response is requested
20
- Nsq::Producer.new(nsqd: 'dockerlb:4150', topic: payload.message_id).write(Oj.dump(response)) if payload.response
21
+ #response_payload = { message_id: payload.message_id, instance_id: payload.instance_id, response: response}
22
+ #Nsq::Producer.new(nsqd: 'dockerlb:4150', topic: "#{@queue}-response").write(Oj.dump(response_payload)) if payload.response
23
+ Redis.new(host: "redis").rpush(payload.message_id, Oj.dump(response))
24
+ message.finish
21
25
  end
22
26
  end
23
27
 
@@ -1,3 +1,3 @@
1
1
  module BasicJRPC
2
- VERSION = "0.1.25"
2
+ VERSION = "0.1.26"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: basicjrpc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.25
4
+ version: 0.1.26
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Simpson
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: redis
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: oj
57
71
  requirement: !ruby/object:Gem::Requirement