Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Update README.

  • Loading branch information...
commit b5b4676ae358d8c0fe1b12b4aa32a384c0a38133 1 parent 60dc082
@jaredhanson authored
Showing with 34 additions and 1 deletion.
  1. +34 −1 README.md
View
35 README.md
@@ -1,6 +1,39 @@
# Function Pool
-A simple worker pool in JavaScript, targeting Node.js.
+Function Pool provides a fixed-size pool that can be used to execute potentially
+expensive tasks in Node.js.
+
+Conceptually similar to a [thread pool](http://en.wikipedia.org/wiki/Thread_pool_pattern),
+but adapted to Node's single-threaded model, Function Pool organizes tasks into
+a queue, which will be executed by a limited number of workers. The number of
+workers corresponds to the number of tasks that will be allowed to execute
+concurrently. After the limit has been reached, tasks will be queued and
+executed when prior tasks complete.
+
+## Installation
+
+ $ npm install functionpool
+
+## Usage
+
+#### Allocate a Pool
+
+Create a new pool, specifying the maximum number of workers in the `size`
+option. The worker function must accept a `done` callback, which it must
+call with the result when it completes work (or error, if an exception occurs).
+
+ var pool = new functionpool.Pool({ size: 4 }, function(x, y, done) {
+ setTimeout(function() { done(null, x + y) }, 5000);
+ });
+
+#### Add Tasks to the Pool
+
+Add tasks to the pool, which will be executed if workers are available and
+queued for later execution otherwise.
+
+ pool.task(3, 14, function(err, res) {
+ console.log('3 + 14 = ' + res);
+ });
## Credits
Please sign in to comment.
Something went wrong with that request. Please try again.