2013-09-25 02:08:25 +04:00
|
|
|
/**********************************************************************
|
|
|
|
|
*
|
|
|
|
|
* Deferred worker API
|
|
|
|
|
*
|
|
|
|
|
* NOTE: at this point this only contains a worker queue...
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
**********************************************************************/
|
|
|
|
|
|
|
|
|
|
// object to register all the worker queues...
|
|
|
|
|
var WORKERS = {}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/********************************************************* Workers ***/
|
|
|
|
|
|
|
|
|
|
// get/create a named worker queue...
|
2014-01-22 03:01:13 +04:00
|
|
|
//
|
|
|
|
|
// XXX rename this to task-related.... (???)
|
|
|
|
|
function getWorkerQueue(name, pool_size, no_auto_start){
|
|
|
|
|
// XXX 1 is the default for compatibility...
|
|
|
|
|
pool_size = pool_size == null ? 1 : pool_size
|
2013-09-25 02:08:25 +04:00
|
|
|
|
|
|
|
|
// create a new worker queue...
|
|
|
|
|
if(WORKERS[name] == null){
|
2014-01-22 03:01:13 +04:00
|
|
|
var queue = makeDeferredPool(pool_size, no_auto_start)
|
2013-09-25 02:08:25 +04:00
|
|
|
WORKERS[name] = queue
|
|
|
|
|
|
|
|
|
|
// return existing worker queue...
|
|
|
|
|
} else {
|
|
|
|
|
var queue = WORKERS[name]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return queue
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// kill all worker queues...
|
|
|
|
|
function killAllWorkers(){
|
|
|
|
|
for(var k in WORKERS){
|
2014-01-22 03:01:13 +04:00
|
|
|
if(WORKERS[k].isRunning()){
|
2013-09-25 02:08:25 +04:00
|
|
|
console.log('Worker: Stopped:', k)
|
|
|
|
|
}
|
2014-01-22 03:01:13 +04:00
|
|
|
WORKERS[k].dropQueue()
|
2013-09-25 02:08:25 +04:00
|
|
|
}
|
|
|
|
|
WORKERS = {}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-01-22 03:01:13 +04:00
|
|
|
/*********************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-09-25 02:08:25 +04:00
|
|
|
/**********************************************************************
|
|
|
|
|
* vim:set ts=4 sw=4 : */
|