module Rainbows::CoolioThreadPool
A combination of the Coolio
and ThreadPool
models. This allows Ruby Thread-based concurrency for application processing. It DOES NOT expose a streamable “rack.input” for upload processing within the app. DevFdResponse
should be used with this class to proxy asynchronous responses. All network I/O between the client and server are handled by the main thread and outside of the core application dispatch.
Unlike ThreadPool
, Cool.io makes this model highly suitable for slow clients and applications with medium-to-slow response times (I/O bound), but less suitable for sleepy applications.
This concurrency model is designed for Ruby 1.9, and Ruby 1.8 users are NOT advised to use this due to high CPU usage.
:pool_size vs worker_connections¶ ↑
In your Rainbows
! config block, you may specify a Thread pool size to limit your application concurrency independently of worker_connections.
Rainbows! do use :CoolioThreadPool, :pool_size => 50 worker_connections 100 end
In extremely rare cases, this may be combined with Rainbows::AppPool
if you have different concurrency capabilities for different parts of your Rack application.
RubyGem Requirements¶ ↑
-
cool.io 1.0.0 or later