@producteca/sbnoti
Notifications Reader for Azure Service Bus
Last updated a month ago by development-producteca .
Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install @producteca/sbnoti 
SYNC missed versions from official npm registry.

servicebus-notifications-reader

(or sbnoti because Azure has problems with large path names -__-)

Notifications Reader for Azure Service Bus

Usage:

SbnotiBuilder = require("sbnoti")

reader = new SbnotiBuilder()
.withServiceBus #required
  connectionString: "the azure connection string"
  topic: "the topic name"
  subscription: "the subscription name"
#All settigns below are optional. The values are the defaults.
.withConcurrency 25
# new health notifiying option:
.withHealth
  redis: 
    host: "host"
    port: 6739
    auth: "cadenaDeAuth"
    db: 2
  app: "la-aplicacion-que-esta-usando-sbnoti"
.build()

To read from the dead letter subscription

reader = new SbnotiBuilder()
.withServiceBus #required
  connectionString: "the azure connection string"
  topic: "the topic name"
  subscription: "the subscription name"
.fromDeadLetter()
.build()

Also read from regular and dead letter at the same time!

reader = new SbnotiBuilder()
.withServiceBus #required
  connectionString: "the azure connection string"
  topic: "the topic name"
  subscription: "the subscription name"
.activeFor
  pending: true #Read from regular subscription
  failed: true  #Read from dead letter
.build()

TIP: Use the booleans for pending and failed to control which readers are active

A nice function to transform strings 'true' and 'false' to actual the boolean value or a default:

stringToBoolean: (value,_default) ->
  (value?.toLowerCase?() ? _default?.toString()) == 'true'

To start the reader with a given process

Promise = require("bluebird")
reader.run (message) =>
  # do something with message
  Promise.resolve "message processed ok"
  # or...
  Promise.reject "error processing the message"

To make an http request for each message

messageToOptions = (message) =>
  uri: "http://an.endpoint.com"
  body: message.data
  headers:
    authorization: "access token"

reader.runAndPost messageToOptions, ignoredStatusCodes: [409,503]
reader.runAndGet messageToOptions
reader.runAndPut messageToOptions
reader.runAndDelete messageToOptions
#or also
method = 'post',  #'get','delete','update'
reader.runAndRequest messageToOptions, method, ignoredStatusCodes: [409]

Migrations

4.x -> 5.x

Removed methods

Current Tags

  • 6.0.1                                ...           latest (a month ago)

10 Versions

  • 6.0.1                                ...           a month ago
  • 6.0.0                                ...           5 months ago
  • 5.0.3                                ...           6 months ago
  • 5.0.2                                ...           6 months ago
  • 5.0.1                                ...           6 months ago
  • 5.0.0                                ...           8 months ago
  • 4.0.3                                ...           8 months ago
  • 4.0.2                                ...           8 months ago
  • 4.0.1                                ...           a year ago
  • 4.0.0                                ...           a year ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 20
Dependencies (8)
Dev Dependencies (13)
Dependents (0)
None

Copyright 2014 - 2017 © taobao.org |