disque 0.0.5 → 0.0.6

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: 567ba45ec3c94e38a4cdd18cc6a58db6960cb6cf
4
- data.tar.gz: f6e258e52e77636493ada87f131ce8495ef97c85
3
+ metadata.gz: 56a16e44f931c9df3d8034e20f33ac0aea958236
4
+ data.tar.gz: 228513e14dd5e84c7bb75b3a11fae24b11ef0d79
5
5
  SHA512:
6
- metadata.gz: 4f933756f0b4165e327f8ce4ea93315d527806bfb9b6a20a5af0c3d2dad25eb219fb06c610410a561f88446ba1c12bbac292126369c9e924ec2c8fde614e0caa
7
- data.tar.gz: 8f3ad9b91c3d16703fa1d77ae1d64be07108ed59bcf3225c1782d16a773413abcd5eb63c39a1ba4dae6973eab67140443b40952b71528323438b71070060fe8e
6
+ metadata.gz: abee6e5004f76d9a8dea568af92c3875a515ff409e96e122a4cfa49435cf08f5b5f3e1d087c7d9f72d94d47a571c6216ba6e79b7ba9f56ac48e45576a5295c22
7
+ data.tar.gz: 64960b88004ac406d5ef67bf7ca9776892e3fe7ef95c72372d6e8ae58922f2e7c4303c899038251d534edcca871dc4fccbbefe9564af131f2cb316a61e7b6215
data/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ 0.0.6
2
+
3
+ - Limit exploration to initial node list
4
+
1
5
  0.0.5
2
6
 
3
7
  - Change API to receive a string of nodes
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "disque"
5
- s.version = "0.0.5"
5
+ s.version = "0.0.6"
6
6
  s.summary = "Client for Disque"
7
7
  s.description = "Disque client for Ruby"
8
8
  s.authors = ["Michel Martens", "Damian Janowski"]
@@ -42,6 +42,8 @@ class Disque
42
42
  # Operations counter
43
43
  @count = 0
44
44
 
45
+ @hosts = hosts
46
+
45
47
  # Known nodes
46
48
  @nodes = Hash.new
47
49
 
@@ -57,7 +59,7 @@ class Disque
57
59
  # Preferred client prefix
58
60
  @prefix = nil
59
61
 
60
- explore!(hosts)
62
+ explore!
61
63
  end
62
64
 
63
65
  def url(host)
@@ -70,12 +72,12 @@ class Disque
70
72
 
71
73
  # Collect the list of nodes and keep a connection to the
72
74
  # node that provided that information.
73
- def explore!(hosts)
75
+ def explore!
74
76
 
75
77
  # Reset nodes
76
78
  @nodes.clear
77
79
 
78
- hosts.each do |host|
80
+ @hosts.each do |host|
79
81
  begin
80
82
  @scout.configure(url(host))
81
83
 
@@ -87,18 +89,14 @@ class Disque
87
89
  # our stats are based on that.
88
90
  @prefix = result[1][0,8]
89
91
 
90
- # Connect the main client to the first node that replied
91
- @client.configure(@scout.url)
92
+ # Populate cache
93
+ @nodes[@prefix] = host
92
94
 
93
- # Populate cache with the list of node and their hosts
94
- result[2..-1].each do |node_id, hostname, port, priority|
95
- @nodes[node_id[0,8]] = sprintf("%s:%s", hostname, port)
96
- end
95
+ # Connect the main client to the last scouted node
96
+ @client.configure(@scout.url)
97
97
 
98
98
  @scout.quit
99
99
 
100
- break
101
-
102
100
  rescue *ECONN
103
101
  $stderr.puts($!.inspect)
104
102
  end
@@ -138,7 +136,7 @@ class Disque
138
136
  def call(*args)
139
137
  @client.call!(*args)
140
138
  rescue *ECONN
141
- explore!(@nodes.values)
139
+ explore!
142
140
  retry
143
141
  end
144
142
 
@@ -124,7 +124,7 @@ test "add jobs with other parameters" do
124
124
  end
125
125
 
126
126
  test "connect to the best node" do
127
- c1 = Disque.new([DISQUE_GOOD_NODES[0]], cycle: 2, auth: "test")
127
+ c1 = Disque.new([DISQUE_GOOD_NODES[1], DISQUE_GOOD_NODES[0]], cycle: 2, auth: "test")
128
128
  c2 = Disque.new([DISQUE_GOOD_NODES[1]], cycle: 2, auth: "test")
129
129
 
130
130
  assert c1.prefix != c2.prefix
@@ -146,8 +146,8 @@ test "connect to the best node" do
146
146
  end
147
147
 
148
148
  test "connect to the best node, part 2" do
149
- c1 = Disque.new([DISQUE_GOOD_NODES[0]], cycle: 2, auth: "test")
150
- c2 = Disque.new([DISQUE_GOOD_NODES[1]], cycle: 2, auth: "test")
149
+ c1 = Disque.new([DISQUE_GOOD_NODES[1], DISQUE_GOOD_NODES[0]], cycle: 2, auth: "test")
150
+ c2 = Disque.new([DISQUE_GOOD_NODES[0], DISQUE_GOOD_NODES[1]], cycle: 2, auth: "test")
151
151
 
152
152
  assert c1.prefix != c2.prefix
153
153
 
@@ -164,7 +164,11 @@ test "connect to the best node, part 2" do
164
164
  end
165
165
 
166
166
  test "recover after node disconnection" do
167
- c1 = Disque.new([DISQUE_GOOD_NODES[0]], cycle: 2, auth: "test")
167
+ Silencer.start
168
+
169
+ c1 = Disque.new([DISQUE_GOOD_NODES[0], DISQUE_BAD_NODES[0]], cycle: 2, auth: "test")
170
+
171
+ Silencer.stop
168
172
 
169
173
  prefix = c1.prefix
170
174
 
@@ -178,6 +182,8 @@ test "recover after node disconnection" do
178
182
  key != "fake"
179
183
  end
180
184
 
185
+ Silencer.start
186
+
181
187
  c1.push("q1", "j1", 1000)
182
188
  c1.push("q1", "j2", 1000)
183
189
  c1.push("q1", "j3", 1000)
@@ -186,8 +192,11 @@ test "recover after node disconnection" do
186
192
  c1.fetch(from: ["q1"])
187
193
  c1.fetch(from: ["q1"])
188
194
 
195
+ Silencer.stop
196
+
189
197
  # Prefix should stay the same
190
198
  assert_equal prefix, c1.prefix
199
+ assert_equal "#<Errno::ECONNREFUSED: Can't connect to: disque://:test@127.0.0.1:7710>\n", Silencer.output
191
200
  end
192
201
 
193
202
  test "federation" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: disque
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michel Martens
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-05-13 00:00:00.000000000 Z
12
+ date: 2015-06-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: redic