1.0.6 • Published 6 years ago
worker-manager.js v1.0.6
Worker
API
WorkerManager(numberOfWorkers = 10)
WorkerManager#hasFreeWorkers()
WorkerManager#_getFreeWorker()
WorkerManager#publish(job)
WorkerManager#_processJobs()
WorkerManager#_run(worker, job)
Worker()
Worker#getId()
Worker#isFree()
Worker#run(job)
events
finished
(worker, job) => {}
Job(payload, [config, data])
Job#getId()
Job#overwriteId()
Job#getPayload()
Job#overwritePayload(payload)
Job#getConfig(config)
Job#getConfigs()
Job#setConfig(config, value)
Job#setConfigs(object)
Job#getError()
Job#_setError()
Job#getData()
Job#getStore()
Job#getNumberOfExecutions()
Job#getResults()
Job#getStatus()
Job#_setStatus()
Job#requeue()
Job#drop()
Job#finish()
Job#error(err)
Job#shouldExecAgain()
Job#_setup()
Job#_do()
Job#exec()
statuses
unfinished
finished
requeue
dropped
setup_error
job_error
timeout_error
events
executed
(job) => {}finished
(job) => {}
const WorkerManager = require('worker-manager.js');
const Job = require('worker-manager.js/Job');
class JobExample extends Job {
/**
* Return job configs.
*/
setup() {
this.setConfig('timeout', 10000);
this.setConfig('maxRepeats', 0);
this.setConfig('dropOnError', false);
this.setConfig('dropOnTimeout', false);
}
/**
* Run job.
*/
async do() {
console.log(`doing job ${this.getId()} ${JSON.stringify(this.getPayload())}`);
}
}
async function main() {
const workerManager = new WorkerManager(10);
const payload = { hello: 'world' };
const job = new JobExample(payload);
job.once('finished', job => console.log('JOB FINISHED', job.getId()));
workerManager.publish(job);
console.log(`pushed job`);
}
main().catch(console.log);