Verwenden von FIFO mit dem AWS Message Processing Framework für.NET - AWS SDK for .NET

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden von FIFO mit dem AWS Message Processing Framework für.NET

Dies ist eine Vorabveröffentlichungsdokumentation für eine Funktion in der Vorschauversion. Änderungen sind vorbehalten.

Für Anwendungsfälle, in denen Nachrichtenreihenfolge und Nachrichtendeduplizierung entscheidend sind, unterstützt das AWS Message Processing Framework for .NET Amazon SQS SQS-Warteschlangen first-in-first-out (FIFO) und Amazon SNS SNS-Themen.

Veröffentlichen

Wenn Sie Nachrichten in einer FIFO-Warteschlange oder einem FIFO-Thema veröffentlichen, müssen Sie die Nachrichtengruppen-ID festlegen, die die Gruppe angibt, zu der die Nachricht gehört. Nachrichten innerhalb einer Gruppe werden der Reihe nach verarbeitet. Sie können dies für die SQS-spezifischen und SNS-spezifischen Nachrichtenherausgeber festlegen.

await _sqsPublisher.PublishAsync(message, new SQSOptions { MessageDeduplicationId = <message-deduplication-id>, MessageGroupId = <message-group-id> });

Abonnieren

Bei der Verarbeitung von Nachrichten aus einer FIFO-Warteschlange behandelt das Framework Nachrichten innerhalb einer bestimmten Nachrichtengruppe in der Reihenfolge, in der sie bei jedem Anruf empfangen wurden. ReceiveMessages Das Framework wechselt automatisch in diesen Betriebsmodus, wenn es mit einer Warteschlange konfiguriert ist, die mit endet. .fifo

await Host.CreateDefaultBuilder(args) .ConfigureServices(services => { // Register the AWS Message Processing Framework for .NET. services.AddAWSMessageBus(builder => { // Because this is a FIFO queue, the framework automatically handles these messages in order. builder.AddSQSPoller("https://sqs.us-west-2.amazonaws.com/012345678910/MPF.fifo"); builder.AddMessageHandler<OrderMessageHandler, OrderMessage>(); }); }) .Build() .RunAsync();