我知道可以使用多个线程来使用SQS队列.我想保证每条消息都会消耗一次.我知道可以更改消息的可见性超时,例如,等于我的处理时间.如果我的进程花费的时间超过可见性超时(例如,连接速度慢),则其他线程可以使用相同的消息.
保证邮件处理一次的最佳方法是什么?
将大约 3K 个对象(文件)加载到 S3。有一个事件会触发加载到该 S3 存储桶的每个文件。
Lambda 仅接收大约 300 个对象的事件触发器。如果我重试(从 S3 移回并将其放回 S3),它会为另外 400 个对象生成事件,其余事件甚至没有到达 lambda。
我在这里缺少什么,我如何为创建的任意数量的对象进行缩放?
var async = require('async');
var aws = require('aws-sdk');
var s3 = new aws.S3();
var kinesis = new aws.Kinesis();
var sns = new aws.SNS();
var config = require('./config.js');
var logError = function(errormsg) {
sns.publish({
TopicArn: config.TopicArn,
Message: errormsg
}, function(err, data) {
if (err) {
console.log(errormsg);
}
});
};
exports.handler = function(event, context, callback) {
var readS3andSendtoKinesis = function(record, index, cb) {
var params …Run Code Online (Sandbox Code Playgroud)