C# PopReceive属性是否保证CloudQueueMessage已成功添加到Azure存储队列?
我正在使用Microsoft.WindowsAzure.Storage.Queue库将邮件从Azure函数推送到存储队列,代码如下:C# PopReceive属性是否保证CloudQueueMessage已成功添加到Azure存储队列?,c#,azure,azure-functions,azure-queues,azure-storage-queues,C#,Azure,Azure Functions,Azure Queues,Azure Storage Queues,我正在使用Microsoft.WindowsAzure.Storage.Queue库将邮件从Azure函数推送到存储队列,代码如下: public void Enqueue(MyMessage myMessage) { string originalPayload = null; try { payload = serializer.Serialize(myMessage); var message = new CloudQueue
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条消息时,几乎一半的消息无法到达队列,即使该功能从未失败,并且在所有尝试中都显示为成功
因此,我想在推送消息后添加一个验证步骤,我在想,如果只是一个POP收据检查就可以了:
if ( string.IsNullOrWhitespace(message.PopReceipt) )
{
// the message was not added, do something
}
可以,您可以执行验证检查以确定消息是否已成功添加到队列中 构建CloudMessage
var message=new CloudQueueMessage(有效负载)时代码>除AsString和AsBytes之外的所有其他属性都将为空。因此,您可以使用“Id”或“popReceive”等属性,这些属性在消息成功添加到队列时填充,以执行验证
还要确保azure功能是否如您所述每5分钟触发200次,如果消息到达时未触发您的功能,则问题在于azure功能 是,您可以执行验证检查以确定消息是否已成功添加到队列中
构建CloudMessagevar message=new CloudQueueMessage(有效负载)时代码>除AsString和AsBytes之外的所有其他属性都将为空。因此,您可以使用“Id”或“popReceive”等属性,这些属性在消息成功添加到队列时填充,以执行验证
还要确保azure功能是否如您所述每5分钟触发200次,如果消息到达时未触发您的功能,则问题在于azure功能 更多信息在这里更多信息在这里