Azure Queue Consumer is a simple consumer that allows you to handle queue messages without having to worry about setting up the azure framework.
Node 18+ is required
pnpm i az-queue-consumer
or
npm i az-queue-consumer
import { AzureQueueConsumer } from 'az-queue-consumer';
const messageHandler = (messages) => {
// do something with the message
}
const queueName = "sample-queue";
const connectionString = "DefaultEndpointsProtocol=https;AccountName=something;AccountKey=something==;EndpointSuffix=core.windows.net";
const listener = new AzureQueueConsumer(queueName, connectionString, messageHandler);
listener.on('queue::ready', () => { console.log("Listener is ready to receive messages!") });
listener.listen();
listen
- The listen function starts the listener which in turns polls the queue every 10 seconds. The default, which is 10 seconds, can be chaged by setting pollingTime
in options in the constructor.
on
- Adds a event listener for specific events. Events are typed and custom handlers need to be passed. See below for full list of events
stop
- Stops the listener and completes execution of any ongoing handler before quitting.
queue::ready
- emitted when the client connects to the queue and is ready to receive messagesmessage::onReceive
- this event is emitted when the client receives a messagehandler::finish
- once the handler finishes executing, this event is emittedhandler::error
- if the handler fails with an exception, the exception is emitted along with this eventlistener::error
- the listener can encounter errors even after connecting such as connection errors. This event gets emitted during such as errorsmessage::preDelete
- Before deleting the message, this event is firedmessage::afterDelete
- After successful deletion, this event gets firedqueue::shutdown
- whenstop()
is called, the queue emits this event and finished executing the current message
Inspired by sqs-consumer