remote_service 0.2.0 → 0.2.1

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: b51a67d9919caa428f9325b571777557440e8630
4
- data.tar.gz: 24d881e6d6e31c6fa494cf7eeb53efa43a61a2f4
3
+ metadata.gz: 5670ccc7120cd8fd2970afe8f7155cbd3cf821b2
4
+ data.tar.gz: 0266410bc964525d47300abedd34fc2eae31fe1e
5
5
  SHA512:
6
- metadata.gz: aca7336d58f22d292e47b8dfaaa64efcc8801bc60ef857804f656ba67501a66353fd6ff988455db4a8bbeae4413b0e97acd6f803d0bca9ff694dd8728493ff57
7
- data.tar.gz: de291a444b256e4a502cb6bb5f678ab11bab74100ce4231fc8ad992896ddd53335145fc8c6ccd19d9b72040c2bcbc51e04204feab837ecc212a58c4f2ebfd978
6
+ metadata.gz: 985326249c4e0e4de5924254c7312c81e937f0fd031b0c5861cec4e53a908eece2fa4f6751ae2e95830249974e9b5e005ab989c9e0919735384a86a0036e9b0d
7
+ data.tar.gz: 86c6592ca9dc2d9d96206c31dea4fbd75a9544b7ac00b4179abef7ed39689d20a7da8ead6fcda83082be11499763d4cf925207594c78940add2087faefdf0033
@@ -2,7 +2,7 @@ PATH
2
2
  remote: .
3
3
  specs:
4
4
  remote_service (0.2.0)
5
- msgpack (~> 1.0)
5
+ msgpack (~> 0.7.4)
6
6
  nats (~> 0.8.0)
7
7
 
8
8
  GEM
@@ -13,7 +13,7 @@ GEM
13
13
  minitest (5.9.0)
14
14
  mocha (1.1.0)
15
15
  metaclass (~> 0.0.1)
16
- msgpack (1.0.0)
16
+ msgpack (0.7.6)
17
17
  nats (0.8.0)
18
18
  eventmachine (~> 1.2, >= 1.2.0)
19
19
  rake (10.4.2)
data/README.md CHANGED
@@ -59,8 +59,8 @@ sleep(0.1) # wait for non-blocking call to execute
59
59
  puts ServiceA.all(123, keyword: 'value')
60
60
  ```
61
61
 
62
- # Todo
63
- Service worker threads
62
+ ## Todo
63
+ Add full support for NATS configuration options.
64
64
 
65
65
  ## Contributing
66
66
 
@@ -19,10 +19,6 @@ module RemoteService
19
19
  queue.connect(brokers, &block)
20
20
  end
21
21
 
22
- def disconnect
23
- Queue.instance.stop
24
- end
25
-
26
22
  def logger
27
23
  @logger ||= begin
28
24
  logger = Logger.new(STDOUT)
@@ -39,8 +39,21 @@ module RemoteService
39
39
 
40
40
  attr_reader :connection
41
41
 
42
+ def connect_options
43
+ {
44
+ dont_randomize_servers: true,
45
+ reconnect_time_wait: ENV.fetch('REMOTE_SERVICE_NATS_RECONNECT_WAIT', 0.2),
46
+ max_reconnect_attempts: ENV.fetch('REMOTE_SERVICE_NATS_RECONNECT_ATTEMPTS', 5),
47
+ servers: @brokers
48
+ }
49
+ end
50
+
42
51
  def connect
43
- NATS.start(servers: @brokers) do |connection|
52
+ NATS.on_error do |error|
53
+ yield(nil)
54
+ raise Errors::ConnectionFailedError, 'Connection to NATS cluster failed'
55
+ end
56
+ NATS.start(connect_options) do |connection|
44
57
  RemoteService.logger.info "CONNECTED: #{connection.connected_server}"
45
58
  RemoteService.logger.info "SERVERS IN POOL: #{connection.server_pool.count}"
46
59
  connection.on_reconnect do
@@ -60,7 +73,8 @@ module RemoteService
60
73
  lock.unlock(connection)
61
74
  end
62
75
  end
63
- lock.wait
76
+ connection = lock.wait.first
77
+ raise Errors::ConnectionFailedError, 'Connection to NATS cluster failed' unless connection
64
78
  end
65
79
  end
66
80
  end
@@ -1,5 +1,6 @@
1
1
  module RemoteService
2
2
  module Errors
3
+ class ConnectionFailedError < StandardError; end
3
4
  class RemoteCallError < StandardError
4
5
  attr_accessor :name, :message, :backtrace
5
6
 
@@ -37,10 +37,6 @@ module RemoteService
37
37
  @conn.publish(queue, encode(payload))
38
38
  end
39
39
 
40
- def stop
41
- @conn.stop
42
- end
43
-
44
40
  private
45
41
 
46
42
  def start_service_subscriber
@@ -1,3 +1,3 @@
1
1
  module RemoteService
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
20
20
  spec.require_paths = ["lib"]
21
21
 
22
22
  spec.add_runtime_dependency 'nats', '~> 0.8.0'
23
- spec.add_runtime_dependency 'msgpack', '~> 1.0'
23
+ spec.add_runtime_dependency 'msgpack', '~> 0.7.4'
24
24
 
25
25
  spec.add_development_dependency "bundler", "~> 1.12"
26
26
  spec.add_development_dependency "rake", "~> 10.0"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: remote_service
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marek Galovic
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.0'
33
+ version: 0.7.4
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.0'
40
+ version: 0.7.4
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement