Sha256: 2f6c8c86efa1bdbeb03d02966626d926500d2e58ad7ef6db24f00283d45e18da

Contents?: true

Size: 1.63 KB

Versions: 3

Compression:

Stored size: 1.63 KB

Contents

= persistent_http

* http://github.com/bpardee/persistent_http

== DESCRIPTION:

Persistent connections using Net::HTTP with a connection pool.

This is based on Eric Holder's Net::HTTP::Persistent libary but uses
a connection pool of Net::HTTP objects instead of a connection per 
thread.  C/T is fine if you're only using your http threads to make 
connections but if you use them in child threads then I suspect you 
will have a thread memory leak.  Also, you will generally get less
connection resets if the most recently used connection is always 
returned.

== FEATURES/PROBLEMS:

* Supports SSL
* Thread-safe
* Pure ruby
* Timeout-less speed boost for 1.8 (by Aaron Patterson)

== INSTALL:

  gem install persistent_http

== EXAMPLE USAGE:

  require 'persistent_http'

  class MyHTTPClient
    @@persistent_http = PersistentHTTP.new(
      :name         => 'MyHTTPClient',
      :logger       => Rails.logger,
      :pool_size    => 10,
      :warn_timeout => 0.25,
      :force_retry  => true,
      :url          => 'https://www.example.com/echo/foo'  # equivalent to :use_ssl => true, :host => 'www.example.com', :default_path => '/echo/foo'
    )

    def send_get_message
      response = @@persistent_http.request
      ... Handle response as you would a normal Net::HTTPResponse ...
    end

    def send_post_message
      request = Net::HTTP::Post.new('/perform_service)
      ... Modify request as needed ...
      response = @@persistent_http.request(request)
      ... Handle response as you would a normal Net::HTTPResponse ...
    end
  end


== Copyright

Copyright (c) 2010 Eric Hodel, Aaron Patterson, Brad Pardee.  See LICENSE for details.

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
persistent_http-1.0.2 README.rdoc
persistent_http-1.0.1 README.rdoc
persistent_http-1.0.0 README.rdoc