Socket
Socket
Sign inDemoInstall

notifme-sdk-queue-rabbitmq

Package Overview
Dependencies
19
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    notifme-sdk-queue-rabbitmq

RabbitMQ plugin for Notif.me SDK


Version published
Maintainers
1
Install size
3.61 MB
Created

Readme

Source

Notif.me

RabbitMQ plugin for Notif.me SDK.

npm-status js-standard-style flow-typed license

Features

  • Easy integration — Just plug and play.

  • Breakdown management — Try to reconnect automatically if connection to queue is lost, and let you choose what to do with notification requests in the meantime.

  • MIT license — Use it like you want.

Getting Started

In your application

$ yarn add notifme-sdk-queue-rabbitmq
import NotifmeRabbitMqProducer from 'notifme-sdk-queue-rabbitmq/lib/producer'

const notificationService = new NotifmeRabbitMqProducer({
  url: 'amqp://localhost'
})

notificationService.enqueueNotification({
  sms: {from: '+15000000000', to: '+15000000001', text: 'Hello, how are you?'}
}).catch(console.error)

In your worker

$ yarn add notifme-sdk notifme-sdk-queue-rabbitmq
import NotifmeSdk from 'notifme-sdk'
import NotifmeRabbitMqConsumer from 'notifme-sdk-queue-rabbitmq/lib/consumer'

const notifmeSdk = new NotifmeSdk({
  /*
   * Define all your providers here.
   * (see documentation: https://github.com/notifme/notifme-sdk#2-providers)
   */
})

const notifmeWorker = new NotifmeRabbitMqConsumer(notifmeSdk, {
  url: 'amqp://localhost'
})

notifmeWorker.run(async (request) => {
  const result = await notifmeSdk.send(request)
  if (result.status === 'error') {
    /*
     * Some channels of this request have errors.
     * Which means all your providers failed for these channels.
     * Do you want to retry failing channels by enqueing to a delayed queue?
     */
  }
})

See a complete working example for more details.

How to use

Producer options

new NotifmeRabbitMqProducer({
  keepRequestsInMemoryWhileConnecting: ...,
  url: ...,
  amqpOptions: ...,
  queueName: ...,
  isPersistent: ...,
  reconnectDelaySecond: ...
})
Option nameTypeDefaultDescription
keepRequestsInMemoryWhileConnectingbooleanfalseShould the requests be kept in memory while queue is (re)connecting? If set to true, may cause memory overflow.
urlstring'amqp://localhost'RabbitMQ URL. See amqplib documentation.
amqpOptionsObject{}Connection options. See amqplib documentation.
queueNamestring'notifme:request'Name of the queue to use.
isPersistentbooleantrueIs the queue persistent?
reconnectDelaySecondnumber30Time in second to wait between two reconnection tries.

Consumer options

new NotifmeRabbitMqConsumer({
  url: ...,
  amqpOptions: ...,
  queueName: ...,
  isPersistent: ...,
  reconnectDelaySecond: ...
})
Option nameTypeDefaultDescription
urlstring'amqp://localhost'RabbitMQ URL. See amqplib documentation.
amqpOptionsObject{}Connection options. See amqplib documentation.
queueNamestring'notifme:request'Name of the queue to use.
isPersistentbooleantrueIs the queue persistent?
reconnectDelaySecondnumber30Time in second to wait between two reconnection tries.

Contributing

Contributions are very welcome!

To get started: fork this repository to your own GitHub account and then clone it to your local device.

$ git clone git@github.com:[YOUR_USERNAME]/notifme-sdk-queue-rabbitmq.git && cd notifme-sdk-queue-rabbitmq
$ yarn install

Need Help? Found a bug?

Submit an issue to the project Github if you need any help. And, of course, feel free to submit pull requests with bug fixes or changes.

FAQs

Last updated on 23 Aug 2017

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc