@qrvey/queue
TypeScript icon, indicating that this package has built-in type declarations

0.0.3 • Public • Published

@qrvey/function-gateway

install size coverage

The @qrvey/queue package provides a unified interface for work with AWS SQS and RabbitMQ based on the specific configurations of the service.

Installation

You can install the package using npm or yarn:

npm install @qrvey/queue

Or with yarn:

yarn add @qrvey/queue

Note: If the application does not have @aws-sdk/aws-sdk/client-sqs, @smithy/node-http-handler aand @smithy/middleware-retry it must be installed manually to work with AWS SQS and amqplib to work with RabbitMQ

Require environment variables

AWS_ACCOUNT_ID //AWS AccountId to send SQS service
AWS_DEFAULT_REGION //AWS Region for SQS service
RABBITMQ_HOST //RabbitMQ host
RABBITMQ_USER //RabbitMQ user
RABBITMQ_PASSWORD //RabbitMQ password
RABBITMQ_PORT //RabbitMQ port
PLATFORM_TYPE //Platform type (possible value CONTAINER)

Conditions for AWS SQS or RA

@qrvey/queue package can deliver message either as a AWS SQS or as a RabbitMQ, depending on certain conditions. These conditions are determined by:

  1. AWS SQS:

    • If the environment variable PLATFORM_TYPE is not set or have a different value to 'CONTAINER'.
  2. RabbitMQ:

    • If the environment variable PLATFORM_TYPE is set to 'CONTAINER'.

Usage Example

const { QueueService } = require('@qrvey/queue');

const queueSchema={
    name:'MY_SAMPLE_QUEUE', //name of the queue in SQS
    alias:'MY_SAMPLE_QUEUE', //name of the queue for RabbitMQ
};
const queueMessage={
    company: "Qrvey",
    name: "Jhon Doe",
};

const options = {
    headers: {
      DelaySeconds: 3,
    },
  };
try{
    const queueService = new QueueService();

    await queueService.connect();

    const res =await queueService.sendMessage(queueSchema, message, options);

    await queueService.disconnect();
    console.log("res: ", res);

}catch(error){
    console.log(error);
}

API

Class

QueueService

Functions

connect(): Promise<any>

sendMessage(queue: string, message: object, options: IFunctionMapping, options: Options.Publish): Promise<any>

  • queue: The name of the queue.
  • message: the body of the messages to be sent to the queue.
  • options: An object with additional configuration options.
  • options.headers: headers of the message
  • Returns: A promise that resolves with the result of the invoked function or rejects with an error if the invocation fails.

deleteMessage(queue: string, receiptHandle: string): Promise<any>

  • queue: The name of the queue.
  • receiptHandle:

disconnect(): Promise<any>

Readme

Keywords

none

Package Sidebar

Install

npm i @qrvey/queue

Weekly Downloads

55

Version

0.0.3

License

ISC

Unpacked Size

68.6 kB

Total Files

45

Last publish

Collaborators

  • steven.barrientos
  • daniel.henriquez
  • everacostaqrvey
  • qrvey-jespinel
  • andresbetinqrvey
  • amit.bhatnagar
  • ricardo.madrid
  • jmsosa
  • emirpolo
  • sandresbc86
  • juandavidleg1
  • hugo.tilano
  • mario.vasco
  • jose.gonzalez.qrvey