Concurrent producer/consumer processing for co, with optional concurrency control.
A more complex but not buffering implementation of co-thread.
var co = require('co');
var process = require('co-process');
co(function*(){
yield process(getData(), function*(data){
data = yield transform(data);
yield db.put(data);
});
})();
Let consumer
concurrently process work from producer
.
Whenever producer
yields data - and maximum concurrency isn't reached - it will be read immediately. Stop processing by yielding a falsy value.
Options:
- max: limit maximum concurrency
- timeout: kill workers after x milliseconds (default: 100)
Set or add co-process
to the DEBUG
env variable to see how workers spawn, die and consume work.
$ npm install co-process
MIT