Fiber pool implementation
Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
features/support
lib
spec
.gitignore
.travis.yml
CI_SCRIPT
Gemfile
README.md
Rakefile
fiberpool.gemspec

README.md

Build Status FiberPool

An implementation of a fiber pool that can be used to cooperatively schedule workloads.

Best used in combination with EventMachine to allow multiple workloads to be processed at the same time.

Throttled to pool size. (default 10) Optional completion callback.

You must call the yielded callback from pool.add add the end of your workload.

e.g.

EM.run do
  FiberPool.start(max_concurrency, pool_complete_callback) do |pool|
    pool.add do |job_completed|
      request = EventMachine::HttpRequest.new('http://example.com').get
      request.callback { success; job_completed.call }
      request.errback  { failure; job_completed.call }
    end
  end
end

NB

This was extracted from a running project, proper documentation may follow.