c# - C#核心无法从sqs中删除消息
问题描述
我正在使用带有 aws sdk 的 .net 核心,能够读取消息,但之后它没有被删除,注意 - 默认可见性超时设置为 1 分钟,操作在 sec 内完成,但仍未被删除。看看代码 -
string qurl = "xxxxxx";
Task<ReceiveMessageResponse> receiveMessageResponse;
using (var sqs = new AmazonSQSClient("xxxx", "xxxxx", xxxxx))
{
const int maxMessages = 1; // 1-10
//Receiving a message
var receiveMessageRequest = new ReceiveMessageRequest
{
// Get URL from Configuration
QueueUrl = qurl,
// The maximum number of messages to return.
// Fewer messages might be returned.
MaxNumberOfMessages = maxMessages,
// A list of attributes that need to be returned with message.
AttributeNames = new List<string> { "All" },
// Enable long polling.
// Time to wait for message to arrive on queue.
};
receiveMessageResponse = sqs.ReceiveMessageAsync(receiveMessageRequest);
if (receiveMessageResponse.Result.Messages != null)
{
foreach (var message in receiveMessageResponse.Result.Messages)
{
Class1 obj = new Class1();
string finalname= obj.fnprocess(message.Body);
Console.WriteLine(finalname);
var res = message.ReceiptHandle;
Task<DeleteMessageResponse> DeleteMessageResponse;
DeleteMessageRequest deleteMessageRequest = new DeleteMessageRequest()
{
QueueUrl = qurl,
ReceiptHandle = res
};
DeleteMessageResponse = sqs.DeleteMessageAsync(deleteMessageRequest);
}
}
}
任何建议我做错了什么。
解决方案
嗨,实际上问题出在密钥上,将代码更改为
var result = sqs.DeleteMessageAsync(deleteMessageRequest).Result;
为了捕捉错误,现在它的工作。
推荐阅读
- java - 在 Excel (XLSX) 中聚焦和确认公式之前,不会评估公式单元格
- sql - 表达式不能与默认约束一起使用。在 azure synapse sql 中仅指定默认约束的常量
- php - 两个日期之间的 Laravel Eloquent / Carbon
- python - 如何用 iloc 重写这个表达式
- javascript - 如何从 Fetch API 调用返回 json
- android - 问题构建应用程序,云存储问题
- python - 从 +250.000 帧创建 7 小时视频
- konvajs - 如何在 konva js 中覆盖(或更新)宽度和 hiehgt 的形状?
- r - 如何强制评估悬挂的 R 表达式
- excel - 使用 VBA 从 Finviz 抓取数据。除了少数小问题外,代码大部分都可以工作?