thrift_client 0.4.4 → 0.4.5
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +6 -4
- data/Manifest +1 -0
- data/lib/thrift_client/abstract_thrift_client.rb +1 -1
- data/test/thrift_client_test.rb +19 -0
- data/thrift_client.gemspec +2 -2
- metadata +4 -4
data/CHANGELOG
CHANGED
@@ -1,10 +1,12 @@
|
|
1
|
-
v0.4.
|
1
|
+
v0.4.5. Fix broken retries.
|
2
2
|
|
3
|
-
v0.4.
|
3
|
+
v0.4.4. Default to 0 retries rather than the number of servers.
|
4
4
|
|
5
|
-
v0.4.
|
5
|
+
v0.4.3. Bug fixes: handle_exception could be called more than once. Integer types are read signed.
|
6
6
|
|
7
|
-
v0.4.
|
7
|
+
v0.4.2. Allow per-method overrides of retries. Fix several bugs with EventMachine.
|
8
|
+
|
9
|
+
v0.4.1. Making ThriftClient decoratable. Able to add new functionality a class definition.
|
8
10
|
|
9
11
|
v0.4.0. Add new EventMachine transport. This requires two layers of transport
|
10
12
|
configurability:
|
data/Manifest
CHANGED
@@ -153,7 +153,7 @@ class AbstractThriftClient
|
|
153
153
|
disconnect_on_error!
|
154
154
|
tries ||= (@options[:retry_overrides][method_name.to_sym] || @retries) + 1
|
155
155
|
tries -= 1
|
156
|
-
tries
|
156
|
+
tries > 0 ? retry : raise
|
157
157
|
end
|
158
158
|
|
159
159
|
def send_rpc(method_name, *args)
|
data/test/thrift_client_test.rb
CHANGED
@@ -59,6 +59,25 @@ class ThriftClientTest < Test::Unit::TestCase
|
|
59
59
|
assert_equal 1, times_called
|
60
60
|
end
|
61
61
|
|
62
|
+
def test_retries_correct_number_of_times
|
63
|
+
stub_server(@socket) do |socket|
|
64
|
+
opts = @options.merge(:timeout => @timeout, :retries => 4, :server_retry_period => nil)
|
65
|
+
client = ThriftClient.new(Greeter::Client, "127.0.0.1:#{@socket}", opts)
|
66
|
+
times_called = 0
|
67
|
+
|
68
|
+
singleton_class = (class << client; self end)
|
69
|
+
|
70
|
+
# disconnect_on_error! is called every time a server related
|
71
|
+
# connection error happens. it will be called every try (so, retries + 1)
|
72
|
+
singleton_class.send :define_method, :disconnect_on_error! do |*args|
|
73
|
+
times_called += 1; super
|
74
|
+
end
|
75
|
+
|
76
|
+
assert_raises(Thrift::TransportException) { client.greeting("someone") }
|
77
|
+
assert_equal opts[:retries] + 1, times_called
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
62
81
|
def test_dont_raise_with_defaults
|
63
82
|
client = ThriftClient.new(Greeter::Client, @servers.first, @options.merge(:raise => false, :defaults => {:greeting => 1}))
|
64
83
|
assert_equal 1, client.greeting
|
data/thrift_client.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{thrift_client}
|
5
|
-
s.version = "0.4.
|
5
|
+
s.version = "0.4.5"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0.8") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Evan Weaver"]
|
9
|
-
s.date = %q{2010-07-
|
9
|
+
s.date = %q{2010-07-28}
|
10
10
|
s.description = %q{A Thrift client wrapper that encapsulates some common failover behavior.}
|
11
11
|
s.email = %q{}
|
12
12
|
s.extra_rdoc_files = ["CHANGELOG", "LICENSE", "README.rdoc", "lib/thrift_client.rb", "lib/thrift_client/abstract_thrift_client.rb", "lib/thrift_client/connection.rb", "lib/thrift_client/connection/base.rb", "lib/thrift_client/connection/factory.rb", "lib/thrift_client/connection/http.rb", "lib/thrift_client/connection/socket.rb", "lib/thrift_client/event_machine.rb", "lib/thrift_client/simple.rb", "lib/thrift_client/thrift.rb"]
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: thrift_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 5
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 0.4.
|
9
|
+
- 5
|
10
|
+
version: 0.4.5
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Evan Weaver
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-07-
|
18
|
+
date: 2010-07-28 00:00:00 -07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|