2016-04-07 2 views

Antwort

3

Als ich ein BrokeredMessage verlassen funktioniert die Nachrichten Lieferung Zahl Zuwachs und somit dazu beitragen, es im Toten Nachricht Queue gestellt werden?

Ja, es ist genau. Jedes Mal, wenn Sie eine Nachricht abbrechen, wird die Anzahl der Zustellungen um 1 erhöht. Und wenn die maximale Anzahl von Zustellungen erreicht ist (was 10 ist), wird sie an die Warteschlange für unzustellbare Nachrichten gesendet.

+0

Für zukünftige Leser. Wenn Sie eine Möglichkeit haben, "aufzugeben", die die Anzahl der Lieferungen nicht erhöht, finden Sie unter "Erneut senden" hier http://markheath.net/post/defer-processing-azure-service-bus-message Die Idee ist im Grunde zu klonen Sie die Nachricht, vervollständigen Sie die ursprüngliche Nachricht und senden Sie die geklonte Nachricht und optional eine benutzerdefinierte Eigenschaft, um die Anzahl der Wiederholungen zu erhöhen. NICHT atomar, aber vielleicht die beste Problemumgehung. – granadaCoder

-1

BrokeredMessage.Abandon() entsperren nur eine Nachricht in der Warteschlange, so dass andere Benutzer die Nachricht finden und sperren können. Es funktioniert nur im peekLock-Modus.

Wenn eine Empfängeranwendung die Nachricht aus irgendeinem Grund nicht verarbeiten kann, kann sie die Abandon-Methode für die empfangene Nachricht aufrufen (anstelle der Complete-Methode). Dies veranlasst den Servicebus, die Nachricht innerhalb der Warteschlange zu entsperren und sie für einen erneuten Empfang verfügbar zu machen, entweder durch dieselbe verbrauchende Anwendung oder durch eine andere konsumierende Anwendung.

Sie können auf diesen Artikel verweisen: https://azure.microsoft.com/en-us/documentation/articles/service-bus-dotnet-how-to-use-queues/ zu sehen, wie Nachrichten aus einer Warteschlange empfangen werden.

Über wie BorkerMessage.Abandon() verwenden, verweisen Sie bitte https://msdn.microsoft.com/en-us/library/azure/hh181837.aspx

Verwandte Themen