AWSLambda在发送批处理异步消息到SQS时不一致地完成。
创始人
2024-09-26 10:31:33
0

使用AWS SDK for .NET中的AmazonSQSClient可以解决该问题。该客户端提供了异步API SendMessageBatchAsync 来将批处理消息发送到SQS并返回异步任务。您可以使用 await Task.WhenAll 来等待所有异步任务完成,然后进行下一步操作。

示例代码如下:

using Amazon;
using Amazon.SQS;
using Amazon.SQS.Model;

public async Task> SendMessagesAsync(
    IEnumerable entries,
    string queueUrl)
{
    var responses = new List();
    var client = new AmazonSQSClient(RegionEndpoint.USEast1);
    const int MaxMessagesPerRequest = 10;

    var batches = entries.Batch(MaxMessagesPerRequest);
    foreach (var batch in batches)
    {
        var request = new SendMessageBatchRequest
        {
            Entries = batch.ToList(),
            QueueUrl = queueUrl
        };
        var response = await client.SendMessageBatchAsync(request);
        responses.Add(response);
    }

    return responses.AsReadOnly();
}

public async Task ProcessMessagesAsync(IEnumerable messages)
{
    var tasks = messages.Select(async message =>
    {
        // Process message here
    });
    await Task.WhenAll(tasks.ToArray());
}

在使用上述代码发送异步批处理消息后,使用另一异步方法 ProcessMessagesAsync 处理从队列中接收到的所有消息。当发送和处理完所有消息后,您可以结束Lambda函数。

相关内容

热门资讯

第9分钟攻略!新道游开挂辅助透... 第9分钟攻略!新道游开挂辅助透视,阿拉游戏中心辅助,透明挂教程(揭秘有挂)-哔哩哔哩1、新道游开挂辅...
8分钟讲义!中至赣牌圈科技,兴... 8分钟讲义!中至赣牌圈科技,兴动互娱脚本,必胜教程(证实有挂)-哔哩哔哩1、打开软件启动之后找到中间...
一分钟要领!福建兄弟水挂,川友... 一分钟要领!福建兄弟水挂,川友汇辅助软件,总结教程(有挂实锤)-哔哩哔哩1、这是跨平台的川友汇辅助软...
7分钟项目!九九山城插件程序,... 7分钟项目!九九山城插件程序,拱趴游戏诀窍,科技教程(有挂分享)-哔哩哔哩1、九九山城插件程序透视辅...
6分钟学习!雀友会广东潮汕辅助... 6分钟学习!雀友会广东潮汕辅助,hhpoker免费辅助器,攻略教程(有挂方式)-哔哩哔哩运雀友会广东...
四分钟绝活儿!新道游正版辅助,... 四分钟绝活儿!新道游正版辅助,卡农辅助,2025版教程(有挂教程)-哔哩哔哩该软件可以轻松地帮助玩家...
2分钟诀窍!微友辅助器免费版v... 2分钟诀窍!微友辅助器免费版v3.0,川友汇挂牌,透牌教程(有挂教学)-哔哩哔哩1、微友辅助器免费版...
3分钟讲义!甘肃白银麻将辅助软... 3分钟讲义!甘肃白银麻将辅助软件,微信边锋辅助软件,靠谱教程(的确有挂)-哔哩哔哩1、玩家可以在甘肃...
三分钟诀窍!福建兄弟十三水辅助... 三分钟诀窍!福建兄弟十三水辅助器下载,欢乐茶馆辅助,揭秘教程(存在有挂)-哔哩哔哩一、福建兄弟十三水...
6分钟资料!摸一把游戏辅助软件... 6分钟资料!摸一把游戏辅助软件,小闲辅助神器,解密教程(真实有挂)-哔哩哔哩1、进入到摸一把游戏辅助...