README.md in connection_pool-0.9.2 vs README.md in connection_pool-0.9.3
- old
+ new
@@ -9,38 +9,60 @@
Install
------------
gem install connection_pool
+
+Notes
+------------
+
+- Connections are eager created when the pool is created.
+- There is no provision for repairing or checking the health of a
+ connection; connections should be self-repairing. This is
+true of the dalli and redis clients.
+
+
Usage
------------
Create a pool of objects to share amongst the fibers or threads in your Ruby application:
- @memcached = ConnectionPool.new(:size => 5, :timeout => 5) { Dalli::Client.new }
+``` ruby
+@memcached = ConnectionPool.new(:size => 5, :timeout => 5) { Dalli::Client.new }
+```
Then use the pool in your application:
- @memcached.with_connection do |dalli|
- dalli.get('some-count')
- end
+``` ruby
+@memcached.with do |dalli|
+ dalli.get('some-count')
+end
+```
+If all the objects in the connection pool are in use, `with` will block
+until one becomes available. If no object is available within `:timeout` seconds,
+`with` will raise a `Timeout::Error`.
+
You can use `ConnectionPool::Wrapper` to wrap a single global connection, making
it easier to port your connection code over time:
- $redis = ConnectionPool::Wrapper.new(:size => 5, :timeout => 3) { Redis.connect }
- $redis.sadd('foo', 1)
- $redis.smembers('foo')
+``` ruby
+$redis = ConnectionPool::Wrapper.new(:size => 5, :timeout => 3) { Redis.connect }
+$redis.sadd('foo', 1)
+$redis.smembers('foo')
+```
The Wrapper uses `method_missing` to checkout a connection, run the
requested method and then immediately check the connection back into the
pool. It's **not** high-performance so you'll want to port your
-performance sensitive code to use `with_connection` as soon as possible.
+performance sensitive code to use `with` as soon as possible.
- $redis.with_connection do |conn|
- conn.sadd('foo', 1)
- conn.smembers('foo')
- end
+``` ruby
+$redis.with do |conn|
+ conn.sadd('foo', 1)
+ conn.smembers('foo')
+end
+```
Once you've ported your entire system to use `with`, you can simply
remove ::Wrapper and use a simple, fast ConnectionPool.
Author