I've created a storage queue, inserted a message to the queue. I keep reading the message with a webjob written in node, I can see the dequeue count is increasing. However, its never been put to the poison queue.
Is this taken care by azure or something I have to write in my nodeja webjob?
Create the queue in C#
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString);
CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();
CloudQueue queue = queueClient.GetQueueReference("successemailqueue");
queue.CreateIfNotExists();
var messageData = JsonConvert.SerializeObject(data, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() });
queue.AddMessage(new CloudQueueMessage(messageData));
Read messages from the queue:
var retryOperations = new azure.ExponentialRetryPolicyFilter();
var queueService = azure.createQueueService(config.storageName, config.storageKey)
.withFilter(retryOperations);
var singleMessageDefaults = { numofmessages: 1, visibilitytimeout: 2 * 60 };
var getSingleMessage = function() {
var deferred = Q.defer();
queueService.getMessages(config.queueName, singleMessageDefaults,
getSingleMessageComplete(deferred));
return deferred.promise;
};
Process message:
var processMessage = function(message){
if (message) {
if (message.dequeuecount < 5) {
sendEmail(message, queue.deleteMessage);
}else{
// move to poison queue
}
}
};
Thanks