gpt4 book ai didi

c# - Amazon SQS "Long Polling"配置。服务器与客户端

转载 作者:太空狗 更新时间:2023-10-30 01:03:43 24 4
gpt4 key购买 nike

很久以前,亚马逊推出了长轮询功能。这样,就可以在队列上配置“接收消息等待时间”参数。根据文档,有效值在 0 - 20 秒范围内。

enter image description here

在客户端,我们也可以在每个MessageReceiveRequest上配置这个参数。我正在使用适用于 .NET 的 AWS 开发工具包。

var receiveRequest = new ReceiveMessageRequest 
{
QueueUrl = "https://queue-url-goes-here.com",
MaxNumberOfMessages = 10,
VisibilityTimeout = 30,
WaitTimeSeconds = 20 // This should tell if we want long polling or not
};

问题:

a) 队列中配置的接收消息等待时间与消息接收请求中设置的WaitTimeSeconds属性之间有什么关系?他们会独立工作吗?或者,客户端中设置的值会覆盖队列中设置的值(针对该单个请求)。

b) 在特定条件下,C# 客户端会超时吗?我正在考虑将这两个值都设置为最大值(20 秒),但我担心这可能会导致 C# 长轮询操作超时。

c) 什么是最佳实践。 WaitTimeSeconds> 接收消息等待时间

最佳答案

a) 如 pastk 的回答所述,消息上的 WaitTimeSeconds 将覆盖队列中配置的接收消息等待时间。查看long polling有关详细信息的文档。

b) 适用于 .NET 的 AWS 开发工具包在后台使用 System.Net.HttpWebRequest - its default timeout is 100 seconds .如果您使用默认值,将 WaitTimeSeconds 设置为 20 秒不会导致操作超时。

c) 亚马逊在这一点上没有规定最佳实践。做任何您认为最适合您的场景的事情。

关于c# - Amazon SQS "Long Polling"配置。服务器与客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26769257/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com