GithubHelp home page GithubHelp logo

fpool's Introduction

NodeJS fork pool with option to use as worker pool

fpool - Work in Progress

NodeJS fork pool with option to use as worker pool

Installation

$ npm install git+https://github.com/lightblade/fpool.git

Module not yet published

API

WorkerPool

constructor

  1. path to forked module
  2. argv passed to the starting process
  3. options: very similar to child_process.spawn, except...
  • execPath will be used as the script to launch to node process
  • execArgv any node specific launch options
  • size maximum number of process to spawn

enqueue(job)

Send job to next available worker.

MessageQueue

The message queue consists of only one exported function.

ready(fn)

  1. fn(job, [callback])
  2. job assigned job to this worker
  3. [callback] optional callback of signature function(err, data)
  • return either...
    • nothing (synchronous call)
    • thunk (asynchronous call)
    • promise(asynchronous call)

Example

var WorkerPool = require('fpool')

// equivilent to
// spawn('/usr/local/bin/node', [ '--harmony', '/usr/local/bin/coffee', '--argv', 'path/to/module' ])
pool = new WorkerPool('path/to/module', [ '--argv' ], {
  execPath: '/usr/local/bin/coffee',
  execArgv: '--harmony',
  size: 4
})

pool.enqueue('job')(function(err, data) {
  // done!
})
var onReady = require('fpool/mq')

onReady(function(job, [callback]) {
  // sync
  return minify(job)

  // thunk
  return function(callback) {
  }

  // promise
  return new Promise(function(resolve, reject) {
  })
})

License

MIT

fpool's People

Contributors

ming-codes avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.