Я хочу быть уверенным, что если такое же сообщение уже присутствует в очереди, тогда второе сообщение должно быть проигнорировано. (Не вставлено в очередь), в то время как webjob
обрабатывает первое сообщение.Как предотвратить дублирование сообщения Duplicate в очереди служебной шины при обработке WebJob?
Я попытался следующий код:
var namespaceManager =
NamespaceManager.CreateFromConnectionString(connectionString);
if (!namespaceManager.QueueExists(queueName))
{
namespaceManager.CreateQueue(new QueueDescription(queueName) { RequiresDuplicateDetection = true });
}
свойства RequiresDuplicateDetection
должен обеспечить около дубликата сообщения.
// 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);
Но webjob
получает trigger for every messageId
. Я дал sleep time 150000 MILI SEC
, но перед этим я попытался установить insert same message to same queue
, который не следует вставлять из-за дублирования сообщения.
пытался MSDN LINK но MSDN он не работает в Azure Webjob Любой может помочь мне в этом?
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);
}
Не работает в WebJob :( – Neo
Эта ссылка больше не работает – ScottE
@ScottE Ссылка обновлена –