(WIP) azure-servicebus-queue
High-level API for Azure Servicebus Queue operations.
Uses the @azure/service-bus SDK
Install
npm i --save @vtfk/azure-servicebus-queue
API
Connection
Get connection string for Service Bus & names for Queues/Topics/Subscriptions
- In the Azure Portal, go to Dashboard > Service Bus > your-servicebus-namespace.
- Note down the "Primary Connection String" of RootManageSharedAccessKey at Shared access policies under Settings tab.
- To work with Queues, find the "Queues" tab right under "Entities" at your-servicebus-namespace, create a Queue and note down its name.
- To work with Topics, find the "Topics" tab right under "Entities" at your-servicebus-namespace, create a Topic. Go to your-servicebus-namespace > your-topic, create subscriptions for the topic. Note down the names of the topic and subscriptions.
const serviceBusClient = require('@vtfk/azure-servicebus-queue')({
connectionString: '<Servicebus Connection String>'
})
Service Bus operations
TODO
Subcription client operations
TODO
Topic operations
First, connect to the desired topic
const topic = serviceBusClient.topic('topicName')
Peek messages
Looks at mesages but don't delete
const limit = 6
const messages = await topic.peek(limit)
Returns an array of max 6 messages.
Peek messages by sequence number
const messages = await topic.peekBySequenceNumber('<sequenceNumber>')
Send message
const message = 'Message'
await topic.send(message)
Receive message(s)
const limit = 10
const timeoutInSeconds = 1
const messages = await topic.receive(limit, timeoutInSeconds)
Send batch
const messages = [{ message: '1' }, { message: '2' }]
await topic.sendBatch(messages)
Schedule Message
const dateToSend = new Date().toISOString()
const message = 'Message'
await topic.scheduleMessage(dateToSend, message)
Schedule Messages
const dateToSend = new Date().toISOString()
const messages = [{ message: '1' }, { message: '2' }]
await topic.scheduleMessages(dateToSend, messages)
Queue operations
First, connect to the desired queue
const queue = serviceBusClient.queue(queueName)
Peek messages
Looks at mesages but don't delete
const limit = 6
const messages = await queue.peek(limit)
Returns an array of max 6 messages.
Peek messages by sequence number
const messages = await queue.peekBySequenceNumber('<sequenceNumber>')
Send message
const message = 'Message'
await queue.send(message)
Receive message(s)
const limit = 10
const timeoutInSeconds = 1
const messages = await queue.receive(limit, timeoutInSeconds)
Send batch
const messages = [{ message: '1' }, { message: '2' }]
await queue.sendBatch(messages)
Schedule Message
const dateToSend = new Date().toISOString()
const message = 'Message'
await queue.scheduleMessage(dateToSend, message)
Schedule Messages
const dateToSend = new Date().toISOString()
const messages = [{ message: '1' }, { message: '2' }]
await queue.scheduleMessages(dateToSend, messages)
Examples
See examples/example.js
To run example.js
create file .env
in project root with following content
QUEUE_NAME=<queue name>
QUEUE_CONNECTION_STRING=<queue connection string url>
And run npm run example
License
MIT