Quantcast
Channel: Service Bus forum
Viewing all articles
Browse latest Browse all 1916

How do I prevent Duplicate message not to be inserted in Service Bus Queue while WebJob processing?

$
0
0

I want to be sure that if same message is already present in the queue then second message should be ignored.(not inserted to queue) while webjob is processing first message.

I tried following code:

 var namespaceManager =
                NamespaceManager.CreateFromConnectionString(connectionString);

            if (!namespaceManager.QueueExists(queueName))
            {
                namespaceManager.CreateQueue(new QueueDescription(queueName) { RequiresDuplicateDetection = true });
            }

property RequiresDuplicateDetection should insure about duplicate message.

 // Get messageFactory for runtime operation
            MessagingFactory messagingFactory = MessagingFactory.CreateFromConnectionString(connectionString);

            QueueClient queueClient = messagingFactory.CreateQueueClient("TestQueue");

            BrokeredMessage message = new BrokeredMessage();
            message.MessageId = "Localization";
            queueClient.Send(message);

But webjob gets trigger for every messageId. I gave sleep time 150000 MILI SEC but before that I tried to insert same message to same queue , which should not be inserted because of duplicate message.

tried msdn MSDN LINK but it is not working in Azure Webjob Any one can help me in this? WebJob Code :

public static void ProcessQueueMessage([ServiceBusTrigger("TestQueue")] BrokeredMessage message, TextWriter log)
        {
 log.WriteLine("Webjob Start" + message.MessageId + DateTime.Now);
            Thread.Sleep(150000);
            log.WriteLine("Webjob End" + message.MessageId + DateTime.Now);
        }

Ashish (ashuthinksatgmail.com) SE



Viewing all articles
Browse latest Browse all 1916

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>