pigato 0.1.8 → 0.1.9

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: 875fcb4804ac38a1ff53945215a523b1b595d2f7
4
- data.tar.gz: 5ede6bd897a90b70f892d92a33c5178df105b36d
3
+ metadata.gz: d886159958134335adb64744e996ff740094638a
4
+ data.tar.gz: f3d27bdf54f03ca35d5e242b9e1b4bc0e392fac3
5
5
  SHA512:
6
- metadata.gz: 31d40715632db839f3cd03771bb26cb40b34f1dfd084d34c6e4981614ad960391c321e8c09f7d6e266414f4e07cb1bc3b406fbb97aa0faa6dcb3082108f29918
7
- data.tar.gz: 42b29b0c476ce11597717c6170829bf6b8aaf64a634ee18246e481a540839cb1c17aee130d5ec0de640fb50304ab34d3990b3fd0ef566161da78f564c4a504f8
6
+ metadata.gz: a27f759e40e610785e3fdae874f03fd0a35dab717c7e017be308b6fef2e4abfeca7eef32c6c40277b3f403b5e2bc43615b406c8dbaacbba961ad61cb40a9bf1a
7
+ data.tar.gz: 7afce2bd05f57ddf66fb842f08f55e0fa9b7e95751671586aa5835ddf4d63a97b25fd82ab91ee437163622c0b0a033eccde41e6520c90be3b67939b062a83d44
@@ -4,7 +4,7 @@ require "rubygems"
4
4
  require "#{File.dirname(__FILE__)}/../lib/pigato.rb"
5
5
  #require "pigato"
6
6
 
7
- client = PigatoClient.new('tcp://localhost:55555')
7
+ client = Pigato::Client.new('tcp://localhost:55555')
8
8
  requests = 1000
9
9
  d1 = Time.now
10
10
  requests.times do |i|
@@ -4,7 +4,7 @@ require "rubygems"
4
4
  require "#{File.dirname(__FILE__)}/../lib/pigato.rb"
5
5
  #require "pigato"
6
6
 
7
- worker = PigatoWorker.new('tcp://localhost:55555', 'echo')
7
+ worker = Pigato::Worker.new('tcp://localhost:55555', 'echo')
8
8
  reply = nil
9
9
 
10
10
  loop do
data/lib/pigato/client.rb CHANGED
@@ -1,16 +1,16 @@
1
1
  require "oj"
2
2
  require "securerandom"
3
3
 
4
- class PigatoClient
4
+ class Pigato::Client
5
5
 
6
6
  def initialize broker
7
7
  @broker = broker
8
8
  @context = ZMQ::Context.new(1)
9
- @client = nil
9
+ @socket = nil
10
10
  @poller = ZMQ::Poller.new
11
11
  @timeout = 2500
12
12
 
13
- reconnect_to_broker
13
+ start
14
14
  end
15
15
 
16
16
  def send service, request, timeout = @timeout
@@ -18,7 +18,7 @@ class PigatoClient
18
18
 
19
19
  rid = SecureRandom.uuid
20
20
  request = [Pigato::C_CLIENT, Pigato::W_REQUEST, service, rid].concat(request)
21
- @client.send_strings request
21
+ @socket.send_strings request
22
22
 
23
23
  res = []
24
24
  while 1 do
@@ -38,7 +38,7 @@ class PigatoClient
38
38
  msg = []
39
39
  d1 = Time.now
40
40
  while 1 do
41
- @client.recv_strings(msg, ZMQ::DONTWAIT)
41
+ @socket.recv_strings(msg, ZMQ::DONTWAIT)
42
42
  msg = [] if msg.length < 5 || msg[3] != rid
43
43
  break if msg.length > 0 || ((Time.now - d1) * 1000 > timeout)
44
44
  sleep(1.0 / 50.0)
@@ -55,16 +55,24 @@ class PigatoClient
55
55
  end
56
56
  nil
57
57
  end
58
+
59
+ def start
60
+ reconnect_to_broker
61
+ end
62
+
63
+ def stop
64
+ $socket.close
65
+ end
58
66
 
59
67
  def reconnect_to_broker
60
- if @client
61
- @poller.deregister @client, ZMQ::DEALER
68
+ if @socket
69
+ @poller.deregister @socket, ZMQ::DEALER
62
70
  end
63
71
 
64
- @client = @context.socket ZMQ::DEALER
65
- @client.setsockopt ZMQ::LINGER, 0
66
- @client.setsockopt ZMQ::IDENTITY, SecureRandom.uuid
67
- @client.connect @broker
68
- @poller.register @client, ZMQ::POLLIN
72
+ @socket = @context.socket ZMQ::DEALER
73
+ @socket.setsockopt ZMQ::LINGER, 0
74
+ @socket.setsockopt ZMQ::IDENTITY, SecureRandom.uuid
75
+ @socket.connect @broker
76
+ @poller.register @socket, ZMQ::POLLIN
69
77
  end
70
78
  end
@@ -1,3 +1,3 @@
1
1
  module Pigato
2
- VERSION = "0.1.8"
2
+ VERSION = "0.1.9"
3
3
  end
data/lib/pigato/worker.rb CHANGED
@@ -2,7 +2,7 @@ require "oj"
2
2
  require "ffi-rzmq"
3
3
  require "securerandom"
4
4
 
5
- class PigatoWorker
5
+ class Pigato::Worker
6
6
 
7
7
  HEARTBEAT_LIVENESS = 3 # 3-5 is reasonable
8
8
 
@@ -11,7 +11,7 @@ class PigatoWorker
11
11
  @service = service
12
12
  @context = ZMQ::Context.new(1)
13
13
  @poller = ZMQ::Poller.new
14
- @worker = nil # Socket to broker
14
+ @socket = nil # Socket to broker
15
15
  @heartbeat_at = 0 # When to send HEARTBEAT (relative to time.time(), so in seconds)
16
16
  @liveness = 0 # How many attempts left
17
17
  @timeout = 2500
@@ -39,7 +39,7 @@ class PigatoWorker
39
39
  items = @poller.poll(@timeout)
40
40
  if items
41
41
  msg = []
42
- @worker.recv_strings msg
42
+ @socket.recv_strings msg
43
43
 
44
44
  @liveness = HEARTBEAT_LIVENESS
45
45
 
@@ -84,16 +84,16 @@ class PigatoWorker
84
84
  end
85
85
 
86
86
  def reconnect_to_broker
87
- if @worker
88
- @poller.deregister @worker, ZMQ::DEALER
89
- @worker.close
87
+ if @socket
88
+ @poller.deregister @socket, ZMQ::DEALER
89
+ @socket.close
90
90
  end
91
91
 
92
- @worker = @context.socket ZMQ::DEALER
93
- @worker.setsockopt ZMQ::IDENTITY, SecureRandom.uuid
94
- @worker.setsockopt ZMQ::LINGER, 0
95
- @worker.connect @broker
96
- @poller.register @worker, ZMQ::POLLIN
92
+ @socket = @context.socket ZMQ::DEALER
93
+ @socket.setsockopt ZMQ::IDENTITY, SecureRandom.uuid
94
+ @socket.setsockopt ZMQ::LINGER, 0
95
+ @socket.connect @broker
96
+ @poller.register @socket, ZMQ::POLLIN
97
97
  send_to_broker(Pigato::W_READY, @service, [])
98
98
  @liveness = HEARTBEAT_LIVENESS
99
99
  @heartbeat_at = Time.now + 0.001 * @heartbeat
@@ -109,6 +109,6 @@ class PigatoWorker
109
109
  message = [Pigato::W_WORKER, command].concat message
110
110
  message = message.concat(options) if options
111
111
 
112
- @worker.send_strings message
112
+ @socket.send_strings message
113
113
  end
114
114
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pigato
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paolo Ardoino