1.0.1 • Published 5 years ago

queue-router v1.0.1

Weekly downloads
1
License
MIT
Repository
github
Last release
5 years ago

queue-router

Simple Router For Queues

NPM version NPM Downloads Node.js Version

Message Format

{
   "type": "TYPE_1",
   "content": { /* your message */ }
}

Usage

Create Router (Routes messages to specific handler)

  const Router = require('queue-router').Router;
  const router = new Router();
  router.add('TYPE_1', {
      handler: function(messageContent, attributes) { // Required
          // your handling code
      },
      validation: { // Optional
          schema: // Joi schema, https://github.com/hapijs/joi 
      }
  });

Create Worker (Pulling message from queue and send them to the router)

  const workerFactory = require('queue-router').workerFactory;
  const worker = workerFactory.create(workerFactory.Types.SQS, router, config);
  worker.init().then(() => worker.start());

workerFactory

workers generator

Functionalities

create(worker_type, router, config)

Create new worker

Entities

Types

Includes all types of worker to listen

SQS

AWS SQS resource config:

  • queue
    • aws
      • credentials
        • region: (default from env AWS_REGION)
        • accessKeyId: (default from env AWS_ACCESS_KEY_ID)
        • secretAccessKey: (default from env AWS_SECRET_ACCESS_KEY)
      • batchSize: Size of batch (default 10)
      • queueUrl: url to sqs

worker

Functionalities

init()

inititalize worker

start()

start worker (start listen to queue and pull messages)

Router

Functionalities

add(message_type, config_object)

add new route

Entities

config_object

route configuration config:

  • handler: handler function
  • validation: validation using Joi

Worker Events

  • error: Fired on general errors.
  • message_error: Fired when an error occurs processing the message.
  • message_received: Fired when a message is received.
  • message_processed: Fired when a message is successfully processed and removed from the queue.
  • stopped: Fired when the consumer finally stops its work.
  • idle: Fired when the queue is empty (All messages have been consumed).

Run Tests

npm test

License

MIT

1.0.1

5 years ago

1.0.0

5 years ago

0.3.3

5 years ago

0.2.3

5 years ago

0.2.2

5 years ago

0.2.1

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago

0.0.5

5 years ago

0.0.4

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago