Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何使用SQS sendMessageBatch()发送10条以上的消息?_Node.js_Amazon Web Services_Amazon Sqs - Fatal编程技术网

Node.js 如何使用SQS sendMessageBatch()发送10条以上的消息?

Node.js 如何使用SQS sendMessageBatch()发送10条以上的消息?,node.js,amazon-web-services,amazon-sqs,Node.js,Amazon Web Services,Amazon Sqs,我在想,使用这段代码,他们会将所有消息发送到我的SQS队列,但是当在数组中使用10个以上的值时,我总是会收到一个错误,告诉我已达到超出限制 我不能增加我的SQS,所以我必须将消息从10发送到10 有没有人能从我需要的最好的方法中提出建议 module.exports.sendMessageBatch = function sendMessages(queueUrl, messages) { for (var i = 0; i < messages.length;) { va

我在想,使用这段代码,他们会将所有消息发送到我的SQS队列,但是当在数组中使用10个以上的值时,我总是会收到一个错误,告诉我已达到超出限制

我不能增加我的SQS,所以我必须将消息从10发送到10

有没有人能从我需要的最好的方法中提出建议

module.exports.sendMessageBatch = function sendMessages(queueUrl, messages) {    
for (var i = 0; i < messages.length;) {
    var params = { 
        QueueUrl: queueUrl,
        Entries: [] 
    };
    for (var j = 0; j < 10 && i < messages.length; i++ , j++) {
        params.Entries.push({
            Id: uuid.v4(),
            MessageBody: JSON.stringify(messages[i])
        });
    }
    return sqs.sendMessageBatch(params).promise();
}
module.exports.sendMessageBatch=函数sendMessages(queueUrl,messages){
对于(var i=0;i
文档中说,您一次最多只能发送10条消息,因此您必须编写自己的逻辑。基本上,将数组分为10批,然后在循环中发送请求。类似如下:

const splitArray=require(“拆分数组”);
异步函数sendMessages(queueUrl,messages){
const spilttedArray=splitArray(消息,10);
for(spilttedArray的常量arr){
变量参数={
QueueUrl:QueueUrl,
条目:[]
};
for(arr的常量消息){
params.Entries.push({
Id:uuid.v4(),
MessageBody:JSON.stringify(消息)
});
}
等待sqs.sendMessageBatch(params.promise();
}
}
有一个包,它支持按顺序并行发送批量消息,以防您希望通过该路由