RethinkDB database connection pool.
RethinkDB database connection pool.
(fixed-pool open)
(fixed-pool open opts)
(fixed-pool open close opts)
A fixed pool of thingies. (open) is called to generate a thingy. (close thingy) is called when a thingy is invalidated. When thingies are invalidated, the pool will immediately try to open a new one; if open throws or returns nil, the pool will sleep for regenerate-interval seconds before retrying (open). :regenerate-interval How long to wait between retrying (open). :size Number of thingies in the pool. :block-start Should (fixed-pool) wait until the pool is full before returning? Note that fixed-pool is correct only if every successful (claim) is followed by exactly one of either (invalidate) or (release). If calls are unbalanced; e.g. resources are not released, doubly released, or released and invalidated, starvation or unbounded blocking could occur. (with-pool) provides this guarantee.
A fixed pool of thingies. (open) is called to generate a thingy. (close thingy) is called when a thingy is invalidated. When thingies are invalidated, the pool will immediately try to open a new one; if open throws or returns nil, the pool will sleep for regenerate-interval seconds before retrying (open). :regenerate-interval How long to wait between retrying (open). :size Number of thingies in the pool. :block-start Should (fixed-pool) wait until the pool is full before returning? Note that fixed-pool is correct only if every successful (claim) is followed by exactly one of either (invalidate) or (release). If calls are unbalanced; e.g. resources are not released, doubly released, or released *and* invalidated, starvation or unbounded blocking could occur. (with-pool) provides this guarantee.
(init-conn db-options)
Create a new RethinkDB connection based on global configuration
Create a new RethinkDB connection based on global configuration
(claim pool)
(claim pool timeout)
Take a thingy from the pool. Timeout of getting a thingy from the pool in seconds (not of using a thingy from the pool); if unspecified, 0. Returns nil if no thingy available.
Take a thingy from the pool. Timeout of getting a thingy from the pool in seconds (not of using a thingy from the pool); if unspecified, 0. Returns nil if no thingy available.
(grow pool)
Adds an element to the pool.
Adds an element to the pool.
(invalidate pool thingy)
Tell the pool a thingy is no longer valid.
Tell the pool a thingy is no longer valid.
(release pool thingy)
Returns a thingy to the pool.
Returns a thingy to the pool.
(rebuild-pool! pool)
Rebuild the entire pool. This is not atomic so other threads taking connections at the same time may get stale ones. Those are invalidated as soon as they cause an exception.
Rebuild the entire pool. This is not atomic so other threads taking connections at the same time may get stale ones. Those are invalidated as soon as they cause an exception.
(shutdown-pool! pool)
Close all things in the pool and clear it's queue
Close all things in the pool and clear it's queue
(with-pool [thingy pool timeout] & body)
Evaluates body in a try expression with a symbol 'thingy claimed from the given pool, with specified claim timeout. Releases thingy at the end of the body, or if an exception is thrown, invalidates them and rethrows. Example: ; With client, taken from connection-pool, waiting 5 seconds to claim, send ; client a message. (with-pool [client connection-pool 5] (send client a-message))
Evaluates body in a try expression with a symbol 'thingy claimed from the given pool, with specified claim timeout. Releases thingy at the end of the body, or if an exception is thrown, invalidates them and rethrows. Example: ; With client, taken from connection-pool, waiting 5 seconds to claim, send ; client a message. (with-pool [client connection-pool 5] (send client a-message))
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close