1.7.1 • Published 6 years ago

@emartech/rabbitmq-worker v1.7.1

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

@emartech/rabbitmq-worker

BaseWorker

Automatically logs worker failures with context and elapsed time on success run.

Methods

retry(message, errorCode)

Re-queues the currently processed message for retry.

queueWorker(workerId, options)

Starts a new worker with the given worker id.

To set required keys in the options, set requiredKeys in the worker's configuration as an array.

Example

const { BaseWorker } = require('@emartech/rabbitmq-worker');

class MyWorker extends BaseWorker {

  async run(options) {
    console.log(options); // { option: 'foo' }
    console.log(this.config.foo); // bar
    
    if (errorHappened) {
      this.retry('Something happened', 400);
    }
    
    
    this.queueWorker('NextWorker', { newVar: 'foo' });
  }

}

MyWorker
  .create('my-worker-log-namespace')
  .execute({foo: 'bar'}, { option: 'foo' });

Ignition

Starts the given type of worker to consume a RabbitMQ queue.

A sample worker starting script my-worker.js:

const { Ignition } = require('@emartech/rabbitmq-worker');
const workerPool = require('./worker-pool');

Ignition.create(workerPool).start('MyWorker');

RabbitMq

See @emartech/rabbitmq-client for more information.

Configuration

@emartech/rabbitmq-worker uses node-config `package for configuration.

Required configuration example

{
  "RabbitMQ": "rabbitmq://connection",
  "Workers": {
    "MyWorker": { // All worker requires a config for it to run
      "queueName": "my-worker", // The queue's name to get options (message)
      "concurrency": 3, // Number of worker instances to start
      "prefetchCount": 10, // Prefetch count for consumer
      "autoNackTime": 60000, // Auto time-out for worker
      "customConfigVar": "foo"
    }
  }
}

Worker pool example

{
  MyWorker: require('./workers/my-worker')
}
1.7.1

6 years ago

1.7.0

6 years ago

1.6.2

6 years ago

1.6.1

6 years ago

1.6.0

6 years ago

1.5.0

6 years ago

1.4.0

6 years ago

1.3.0

6 years ago

1.2.0

6 years ago

1.1.0

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago