1.0.6 • Published 6 years ago

worker-manager.js v1.0.6

Weekly downloads
2
License
ISC
Repository
github
Last release
6 years ago

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);
1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago