View a markdown version of this page

将 FIFO 与 Amazon Message Processing Framework for .NET 结合使用 - Amazon SDK for .NET (V3)
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon SDK for .NET V3 已结束支持。

我们建议您迁移到 Amazon SDK for .NET V4。有关如何迁移的更多详细信息和信息,请参阅我们的终止支持公告

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将 FIFO 与 Amazon Message Processing Framework for .NET 结合使用

对于消息排序和消息重复数据删除至关重要的使用案例,Amazon Message Processing Framework for .NET 支持先进先出(FIFO)Amazon SQS 队列Amazon SNS 主题

发布

向 FIFO 队列或主题发布消息时,您必须设置消息组 ID,该 ID 指定消息所属的组。组内的消息按顺序处理。您可以在特定于 SQS 和 SNS 的消息发布者上进行此设置。

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

订阅

处理来自 FIFO 队列的消息时,框架会按照每次 ReceiveMessages 调用的接收顺序处理给定消息组中的消息。当配置以 .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();