basicjrpc 0.1.22 → 0.1.23

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: 63441e02504044beac3160b3098b6d04e1d0d714
4
- data.tar.gz: 58d5a87b69db8a4b7f46156ead1aafc2ab24de4e
3
+ metadata.gz: 4f5025616b2381b62821c3fe4a2d2a843fe2835e
4
+ data.tar.gz: f03a80fd40f834d7a7599f68e4390ae2869cb261
5
5
  SHA512:
6
- metadata.gz: e1813a1011e50d6fbb6ed09dbe81cc190b28cde2f79a17fa8282a9588b2612386674712780b1d7b70471aac88ea83de2e91236d565ded91c4ed405f925977fbb
7
- data.tar.gz: 89594388c67ec881fcf1d808adea5a93ae4696eeb19b8b5bcfdee11afe922cbf30b28cb8c201d6aa308e02e5ccf553b0afb2cbdd7108d8c2254143b077f026c9
6
+ metadata.gz: c4a6b2d864f0b9499723989880b9954521c333f842e9bc5c9789d3480f66cdd3e01fe7a271a4b1158d4dd97f3dcf5dd727e43c30c8c6c27af3d67ce0cdb66ca5
7
+ data.tar.gz: 03f8a11227cf890094488191ecca52dbe6408fb4c8d5634c6133886e8f3a7ff35835ff8e7cbfae7b8ca7c0dd07f84094e3f81b69a91bca19997773f6a90a6809
data/basicjrpc.gemspec CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
21
21
 
22
22
  spec.add_development_dependency "bundler", "~> 1.11"
23
23
  spec.add_development_dependency "rake", "~> 10.0"
24
- spec.add_runtime_dependency 'redis'
24
+ spec.add_runtime_dependency 'nsq'
25
25
  spec.add_runtime_dependency 'oj'
26
26
  spec.add_runtime_dependency 'require_all'
27
27
  end
data/lib/basicjrpc.rb CHANGED
@@ -13,7 +13,7 @@ module BasicJRPC
13
13
  end
14
14
 
15
15
  def self.debug
16
- defined?(@@debug) ? @@debug : false
16
+ @@debug || false
17
17
  end
18
18
  end
19
19
  end
@@ -3,7 +3,7 @@ module BasicJRPC
3
3
  # Responding Client
4
4
  class Client
5
5
  def initialize(queue, timeout = 5)
6
- @redis = Redis.new(host: "redis")
6
+ @nsq_producer = Nsq::Producer.new(nsqd: 'dockerlb:4150', topic: queue)
7
7
  @queue = queue
8
8
  @payload = {}
9
9
  @timeout = timeout
@@ -17,11 +17,9 @@ module BasicJRPC
17
17
  payload[:message_id] = SecureRandom.uuid
18
18
  payload[:response] = true
19
19
 
20
- @redis.rpush(@queue, Oj.dump(payload))
21
-
22
- Timeout::timeout(@timeout) {
23
- return Oj.load(@redis.blpop(payload[:message_id])[1])
24
- }
20
+ @nsq_producer.write(Oj.dump(payload))
21
+
22
+ return Oj.load(Nsq::Consumer.new(nsqlookupd: 'dockerlb:4161',topic: payload[:message_id], channel: 'client').pop)
25
23
  end
26
24
  end
27
25
 
@@ -30,7 +28,7 @@ module BasicJRPC
30
28
  def send_request payload
31
29
  payload[:message_id] = SecureRandom.uuid
32
30
  payload[:response] = true
33
- @redis.rpush(@queue, Oj.dump(payload))
31
+ @nsq_producer.write(Oj.dump(payload))
34
32
  end
35
33
  end
36
34
 
@@ -4,21 +4,20 @@ module BasicJRPC
4
4
  def initialize queue, injected_class
5
5
  @injected_class = injected_class
6
6
  @queue = queue
7
- @redis = Redis.new(host: "redis")
7
+ @nsq_consumer = Nsq::Consumer.new(nsqlookupd: 'dockerlb:4161', topic: @queue, channel: 'server')
8
8
  end
9
9
 
10
10
  def listen
11
11
  puts "Listening..."
12
12
  while true
13
- payload = @redis.blpop(@queue)[1]
14
- payload = Oj.load(payload)
15
- puts "Processing message #{payload.method_name} #{payload.method_arguments}" if BasicJRPC::Config.debug
13
+ payload = Oj.load(@nsq_consumer.pop)
14
+ puts "Processing message #{payload.method_name} #{payload.method_arguments}"
16
15
 
17
16
  # Should always return a data object
18
17
  response = @injected_class.send(payload.method_name, *payload.method_arguments)
19
-
18
+
20
19
  # Bounce the response back if response is requested
21
- @redis.rpush(payload.message_id, Oj.dump(response)) if payload.response
20
+ Nsq::Producer.new(nsqd: 'dockerlb:4150', topic: payload.message_id).write(Oj.dump(response)) if payload.response
22
21
  end
23
22
  end
24
23
 
@@ -1,3 +1,3 @@
1
1
  module BasicJRPC
2
- VERSION = "0.1.22"
2
+ VERSION = "0.1.23"
3
3
  end
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.22
4
+ version: 0.1.23
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-06-18 00:00:00.000000000 Z
11
+ date: 2016-09-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: redis
42
+ name: nsq
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="