https://github.com/aarontravass/az-queue-consumer
Lightweight Azure Queue Consumer
https://github.com/aarontravass/az-queue-consumer
azure consumer nodejs queue typescript
Last synced: 3 months ago
JSON representation
Lightweight Azure Queue Consumer
- Host: GitHub
- URL: https://github.com/aarontravass/az-queue-consumer
- Owner: aarontravass
- License: mit
- Created: 2023-07-21T05:30:51.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-21T04:51:42.000Z (8 months ago)
- Last Synced: 2025-04-02T11:15:12.216Z (3 months ago)
- Topics: azure, consumer, nodejs, queue, typescript
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/az-queue-consumer
- Size: 699 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Azure Queue Consumer
[](https://github.com/aarontravass/azure-queue-storage-consumer/actions/workflows/main.yml)
[](https://codecov.io/gh/aarontravass/az-queue-consumer)
[](https://badge.fury.io/js/az-queue-consumer)

[](https://www.codefactor.io/repository/github/aarontravass/az-queue-consumer)
Azure Queue Consumer is a simple consumer that allows you to handle queue messages without having to worry about setting up the azure framework.
## Installation
Node 18+ is required
```pnpm i az-queue-consumer ```
or
```npm i az-queue-consumer```
## Examples
```tsimport { 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();
```
## API`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.
## Events
* `queue::ready` - emitted when the client connects to the queue and is ready to receive messages
* `message::onReceive` - this event is emitted when the client receives a message
* `handler::finish` - once the handler finishes executing, this event is emitted
* `handler::error` - if the handler fails with an exception, the exception is emitted along with this event
* `listener::error` - the listener can encounter errors even after connecting such as connection errors. This event gets emitted during such as errors
* `message::preDelete` - Before deleting the message, this event is fired
* `message::afterDelete` - After successful deletion, this event gets fired
* `queue::shutdown` - when `stop()` is called, the queue emits this event and finished executing the current message## Credits
Inspired by [sqs-consumer](https://github.com/bbc/sqs-consumer)