basicjrpc 0.1.75 → 0.1.76

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: 9273eb13746a78138f52da26bd189175af30306c
4
- data.tar.gz: 2bdf53c563371e9de35b2ea8f997a6d7f4d62b22
3
+ metadata.gz: d6b795ccc42f1a96ac34b0346d79d9c8ae0f23da
4
+ data.tar.gz: 513f4071568d8ae68233cba2c9a4220c0fb91efa
5
5
  SHA512:
6
- metadata.gz: 93e5e46ce3212a8e9c626f8539aa419b862cf4584444c14326719b6e7267f1d4ed0e5c20b8d7d03fb59e68ea051fac0c7ce72782d6562c78f930481ba07ed0a5
7
- data.tar.gz: cda0d32984441393298d7d9b6631c023002cb4e142b76cb0b5fe4a79f1a094381a0fc2e36058d75c525d155ca73f270b3d29ee8947d1746a19bd37c17204709f
6
+ metadata.gz: bf5abf3de01fb0f7ab55a04c5278d4a6a1697bf9eb17817b482ffa2d7be820d58747d3f99684c4e83c81a311e432efda36d63479d955e4f77b1cf085ad004945
7
+ data.tar.gz: d903f08dd46e9c797a1535dc535d3ac2e0e74d1d9019c1e44909689eec7fd62e6977b50bd83468dc65bfb184590689bbff3c66712b2602afe7b0366db4732d46
@@ -19,9 +19,9 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ["lib"]
21
21
 
22
- spec.add_development_dependency "bundler", "~> 1.11"
22
+ spec.add_development_dependency "bundler", "~> 1.17"
23
23
  spec.add_development_dependency "rake", "~> 10.0"
24
24
  spec.add_runtime_dependency 'redis'
25
25
  spec.add_runtime_dependency 'oj'
26
26
  spec.add_runtime_dependency 'require_all'
27
- end
27
+ end
@@ -1,22 +1,16 @@
1
- require 'timeout'
2
-
3
-
4
- ##### WARNING
5
- ##### WARNING
6
- ##### THERE IS NO DEAD-CLIENT PROTECTION
7
- ##### THIS WILL DAMAGE UPSTREAM REQUESTS UNTIL RELOADED
8
-
9
1
  module BasicJRPC
10
2
 
11
- # Responding Client
12
3
  class Client
13
4
  def initialize(queue, timeout=10, host="redis")
14
5
  @queue = queue
15
6
  @payload = {}
16
7
  @timeout = timeout
17
8
  @instance_id = SecureRandom.uuid
18
- #@nsq_producer = Nsq::Producer.new(nsqd: 'dockerlb:4150', topic: @queue)
19
- @redis = Redis.new(host: host, port: 6381)
9
+ if host.is_a?(Array)
10
+ @redis = Redis.new(cluster: host.map { |n| "redis://#{n}:6381" }, driver: :hiredis)
11
+ elsif host.is_a?(String)
12
+ @redis = Redis.new(host: @host, port: 6381)
13
+ end
20
14
  end
21
15
 
22
16
  def method_missing(m, *args, &block)
@@ -27,23 +21,12 @@ module BasicJRPC
27
21
  payload['message_id'] = SecureRandom.uuid
28
22
  payload['instance_id'] = @instance_id
29
23
  payload['response'] = true
30
-
31
24
  my_message = false
32
25
 
33
26
  @redis.rpush(@queue, Oj.dump(payload))
34
-
35
- Timeout::timeout(@timeout) {
36
- Oj.load(@redis.blpop(payload['message_id'])[1], :symbol_keys => true)
37
- }
38
- rescue Exception => e
39
- #terminate
40
- raise e
27
+ Oj.load(@redis.blpop(payload['message_id'], timeout: @timeout)[1], :symbol_keys => true)
41
28
  end
42
29
 
43
- # This must be called
44
- def terminate
45
- #@nsq_producer.terminate
46
- end
47
30
  end
48
31
 
49
32
  # Fire And Forget Client
@@ -53,9 +36,6 @@ module BasicJRPC
53
36
  payload['response'] = true
54
37
  payload['caller'] = caller.first(10)
55
38
  @redis.rpush(@queue, Oj.dump(payload))
56
- rescue Exception => e
57
- #terminate
58
- raise e
59
39
  end
60
40
  end
61
41
  end
@@ -2,20 +2,22 @@ module BasicJRPC
2
2
  class Server
3
3
 
4
4
  def initialize queue, injected_class, host="redis"
5
+ if host.is_a?(Array)
6
+ @redis = Redis.new(cluster: host.map { |n| "redis://#{n}:6381" }, driver: :hiredis)
7
+ elsif host.is_a?(String)
8
+ @redis = Redis.new(host: @host, port: 6381)
9
+ end
5
10
  @injected_class = injected_class
6
11
  @queue = queue
7
- #@nsq_consumer = Nsq::Consumer.new(nsqlookupd: 'dockerlb:4161', topic: @queue, channel: 'server')
8
12
  @host = host
9
13
  end
10
14
 
11
15
  def listen(trigger=nil, error_handler=nil)
12
16
  puts "Listening..."
13
- @redis = Redis.new(host: @host, port: 6381)
14
17
 
15
18
  while true
16
19
  begin
17
20
  redis_response = @redis.blpop(@queue)
18
- #@redis.rpush("#{@queue}-processing", redis_response)
19
21
  rescue Redis::TimeoutError
20
22
  puts "ERROR: Redis Read timed out. Retrying"
21
23
  retry
@@ -45,9 +47,5 @@ module BasicJRPC
45
47
  raise e
46
48
  end
47
49
 
48
- def terminate
49
- #@nsq_consumer.terminate
50
- end
51
-
52
50
  end
53
51
  end
@@ -1,3 +1,3 @@
1
1
  module BasicJRPC
2
- VERSION = "0.1.75"
2
+ VERSION = "0.1.76"
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.75
4
+ version: 0.1.76
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Simpson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-05-14 00:00:00.000000000 Z
11
+ date: 2020-02-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.11'
19
+ version: '1.17'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.11'
26
+ version: '1.17'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -120,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
120
  version: '0'
121
121
  requirements: []
122
122
  rubyforge_project:
123
- rubygems_version: 2.5.2.3
123
+ rubygems_version: 2.6.12
124
124
  signing_key:
125
125
  specification_version: 4
126
126
  summary: Basic JRPC Handler