A convenient wrapper to work with Azure Storage Queues in Node.js applications.
You can install the package using npm:
npm install azure-queue-wrapper
- Initialize Azure Queue Wrapper Import the package and initialize the Azure Queue Wrapper in your code:
import { ProcessAzureQueueMessage, AddMessageToQueue } from 'azure-queue-wrapper';
- Process Messages from Queue Use the @ProcessAzureQueueMessage decorator to process messages from a queue based on a specified time interval:
class MyQueueProcessor {
@ProcessAzureQueueMessage('<connection-string>', { queue: '<queue-name>', retry: 3, timeInterval: [5, 'seconds'], deadLetterQueue: '<dead-letter-queue-name>', numberOfMessages: 1, isMessageEncoded: false, startupDelay: 60 }) // Replace with your connection string, queue name, retries count(default: 3), interval (default:5 seconds), deadLetterQueue name( default: <queue-name>-poison) , numberOfMessages(optional) default is 1, isMessageEncoded (optional) determines if messsage from queue will be encoded (default = false), startupDelay in seconds (optional) default is 60 seconds
async processQueueMessage(message: any) {
// Your message processing logic here
}
}
The following time units are supported for specifying the time interval:
- Seconds
- Minutes
- Hours
- Days
- Weeks
The time interval should be specified as a tuple with a numeric value and the unit, for example, (5, 'seconds')
for 5 seconds, (10, 'minutes')
for 10 minutes, and so on.
- Add Message to Queue Use the @AddMessageToQueue decorator to add a message to a queue:
class MyQueueProducer {
@AddMessageToQueue('<connection-string>')
async addMessageToQueue(queueName: string, message: any) {
// Your message adding logic here
return { status: 'success' };
}
}
Contributions are welcome! Please feel free to submit issues or pull requests on the GitHub repository.
Find the source code, contribute, or report issues on GitHub.
This project is licensed under the MIT License.