gpt4 book ai didi

c# - PopReceipt 属性是否保证 CloudQueueMessage 已成功添加到 Azure 存储队列?

转载 作者:行者123 更新时间:2023-12-03 05:45:39 25 4
gpt4 key购买 nike

我使用 Microsoft.WindowsAzure.Storage.Queue 库通过以下代码将消息从 Azure Function 推送到存储队列:

public void Enqueue(MyMessage myMessage)
{
string originalPayload = null;
try
{
payload = serializer.Serialize(myMessage);
var message = new CloudQueueMessage(payload);
cloudQueue.AddMessage(message);
}
catch (Exception ex)
{
throw ex;
}

}

这适用于小容量,但是当每 5 分钟处理大约 200 条消息时,几乎一半的消息不会进入队列,即使该函数从未失败并且所有尝试都显示为成功。

所以我想在推送消息后添加一个验证步骤,我在想是否只需 PopReceipt 检查就可以:

if ( string.IsNullOrWhitespace(message.PopReceipt) )
{
// the message was not added, do something
}

最佳答案

是的,您可以执行验证检查以确定消息是否已成功添加到队列中。

构造 CloudMessage 时 var message = new CloudQueueMessage(payload); 除了 AsString 和 AsBytes 之外的所有其他属性都将为 null。因此,您可以使用“Id”或“PopReceipt”等属性,这些属性在消息成功添加到队列时填充,以执行验证。

还要确保您的 azure 函数是否像您提到的那样每 5 分钟触发 200 次,如果消息到达时您的函数没有触发,则问题出在 azure 函数上。

关于c# - PopReceipt 属性是否保证 CloudQueueMessage 已成功添加到 Azure 存储队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54471166/

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