abraxas
Version:
A streaming gearman client / worker / server (as you choose)
23 lines (20 loc) • 785 B
JavaScript
;
exports.maxJobId = 0;
var SingleClientJob = exports.SingleClientJob = require('./server-job-single');
var MultiClientJob = exports.MultiClientJob = require('./server-job-multi');
var BackgroundJob = exports.BackgroundJob = require('./server-job-background');
exports.create = function (func, background, uniqueid, priority, body) {
var isUnique = uniqueid != '' && uniqueid != null;
var id = isUnique
? 'unique:' + uniqueid
: 'job:' + (++ exports.maxJobId);
if (background) {
return new BackgroundJob(id, func, uniqueid, priority, body);
}
else if (isUnique) {
return new MultiClientJob(id, func, uniqueid, priority, body);
}
else {
return new SingleClientJob(id, func, priority, body);
}
}