persistent_http 1.0.2 → 1.0.3

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.
Files changed (4) hide show
  1. data/History.md +6 -1
  2. data/README.rdoc +2 -2
  3. data/lib/persistent_http.rb +20 -6
  4. metadata +8 -5
data/History.md CHANGED
@@ -1,5 +1,10 @@
1
1
  PersistentHttp Changelog
2
- =====================
2
+ ========================
3
+
4
+ 1.0.3
5
+
6
+ - Allow option idle_timeout which will renew connection that haven't been used in this amount of time.
7
+ - Implement shutdown which will close connections as they are checked in.
3
8
 
4
9
  1.0.2
5
10
 
data/README.rdoc CHANGED
@@ -45,7 +45,7 @@ returned.
45
45
  end
46
46
 
47
47
  def send_post_message
48
- request = Net::HTTP::Post.new('/perform_service)
48
+ request = Net::HTTP::Post.new('/perform_service')
49
49
  ... Modify request as needed ...
50
50
  response = @@persistent_http.request(request)
51
51
  ... Handle response as you would a normal Net::HTTPResponse ...
@@ -55,4 +55,4 @@ returned.
55
55
 
56
56
  == Copyright
57
57
 
58
- Copyright (c) 2010 Eric Hodel, Aaron Patterson, Brad Pardee. See LICENSE for details.
58
+ Copyright (c) 2010-2012 Eric Hodel, Aaron Patterson, Brad Pardee. See LICENSE for details.
@@ -82,6 +82,10 @@ class PersistentHTTP
82
82
  # HTTP version to enable version specific features.
83
83
  attr_reader :http_version
84
84
 
85
+ ##
86
+ # Connection will be renewed if it hasn't been used in this amount of time. Defaults to 10 seconds.
87
+ attr_reader :idle_timeout
88
+
85
89
  ##
86
90
  # The value sent in the Keep-Alive header. Defaults to 30. Not needed for
87
91
  # HTTP/1.1 servers.
@@ -143,7 +147,7 @@ class PersistentHTTP
143
147
  ##
144
148
  # The threshold in seconds for checking out a connection at which a warning
145
149
  # will be logged via the logger
146
- attr_accessor :warn_timeout
150
+ attr_reader :warn_timeout
147
151
 
148
152
  ##
149
153
  # Creates a new PersistentHTTP.
@@ -171,6 +175,7 @@ class PersistentHTTP
171
175
  @force_retry = options[:force_retry]
172
176
  @headers = options[:header] || {}
173
177
  @host = options[:host]
178
+ @idle_timeout = options[:idle_timeout] || 10
174
179
  @keep_alive = options[:keep_alive] || 30
175
180
  @logger = options[:logger]
176
181
  @open_timeout = options[:open_timeout]
@@ -227,6 +232,8 @@ class PersistentHTTP
227
232
  @pool = GenePool.new(:name => name + '-' + connection_id,
228
233
  :pool_size => @pool_size,
229
234
  :warn_timeout => @warn_timeout,
235
+ :idle_timeout => @idle_timeout,
236
+ :close_proc => nil,
230
237
  :logger => @logger) do
231
238
  begin
232
239
  connection = Net::HTTP.new(*net_http_args)
@@ -246,6 +253,16 @@ class PersistentHTTP
246
253
  end
247
254
  end
248
255
 
256
+ # Reset the size of the connection pool
257
+ def pool_size=(pool_size)
258
+ @gene_pool.pool_size = pool_size
259
+ end
260
+
261
+ # Return the size of the connection pool
262
+ def pool_size
263
+ @gene_pool.pool_size
264
+ end
265
+
249
266
  ##
250
267
  # Makes a request per +req+. If +req+ is nil a Net::HTTP::Get is performed
251
268
  # against +default_path+.
@@ -320,11 +337,8 @@ class PersistentHTTP
320
337
 
321
338
  ##
322
339
  # Shuts down all connections.
323
-
324
- def shutdown
325
- raise 'Shutdown not implemented'
326
- # TBD - need to think about this one
327
- @count_hash = nil
340
+ def shutdown(timeout=10)
341
+ @gene_pool.close(timeout)
328
342
  end
329
343
 
330
344
  #######
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: persistent_http
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,19 +9,19 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-03 00:00:00.000000000Z
12
+ date: 2012-02-23 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: gene_pool
16
- requirement: &70318434795540 !ruby/object:Gem::Requirement
16
+ requirement: &70307428283760 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
- version: 1.0.1
21
+ version: 1.2.3
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70318434795540
24
+ version_requirements: *70307428283760
25
25
  description: Persistent HTTP connections using a connection pool
26
26
  email:
27
27
  - bradpardee@gmail.com
@@ -47,6 +47,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
47
47
  - - ! '>='
48
48
  - !ruby/object:Gem::Version
49
49
  version: '0'
50
+ segments:
51
+ - 0
52
+ hash: 1575083792056882891
50
53
  required_rubygems_version: !ruby/object:Gem::Requirement
51
54
  none: false
52
55
  requirements: