remote_service 0.2.0 → 0.2.1

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 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