Amazon web services AWS SQS删除批处理消息,错误:TooManyEntriesInBatchRequest
我试图一次删除Amazon web services AWS SQS删除批处理消息,错误:TooManyEntriesInBatchRequest,amazon-web-services,amazon-sqs,aws-php-sdk,Amazon Web Services,Amazon Sqs,Aws Php Sdk,我试图一次删除AWS SQS批处理消息,它删除数组块的第一个10消息,但不删除第二个块,抛出错误 AWS.SimpleQueueService.TooManyEntriesInBatchRequest(客户端):最大值 每个请求的条目数为10。你已经发送了12个 我正在遵循这些步骤 我有12条消息的数组,并将它们转换成如下块 $chunks = array_chunk($entries, 10, true); // make chunks of 10 items per array 块1
AWS SQS
批处理消息,它删除数组块的第一个10
消息,但不删除第二个块,抛出错误
AWS.SimpleQueueService.TooManyEntriesInBatchRequest(客户端):最大值
每个请求的条目数为10。你已经发送了12个
我正在遵循这些步骤
我有12条消息的数组,并将它们转换成如下块
$chunks = array_chunk($entries, 10, true); // make chunks of 10 items per array
块1
块2
Array
(
[10] => Array
(
[Id] => 1f2f5165-56a1-4df4-a70a-d22869b408ec
[ReceiptHandle] => AQEByG1UiIz/+Uqlb3R5gkfVqOzNrWPYq8YEc3XluoqYJpVQD13TcpeFAPNU4C0NybzsKtRLLQfsM58dUehrlGP5JmU9H+ROgAGDF5R6qVNyot+dJtRKmUJdmt2A2r6NkiYMg7hgrU4+upRMhTlOAY/Ni5HGOvJbhvR/upHKSVe5gWoabQTG6Puvvg8L/pamET+PcImDxQPgSNzLc9L/8SwhTwYyqdYG4CwhymelqiAtI7siHpyBBmC24JyX6IWL/3pJenI0yBZhREdNsd2hHLcZAWoCrhq4EFsneAgcnm9UWOCuorceCOQHU94trl38z9tbXXbpEjI5ZVWlrhc6Abx6vknegjIdAoR2gLwkvUdSTHkV4QxoFZOKjLoYJBeV2ugaHgJi/52/DdL9HNQoQziwZg==
)
[11] => Array
(
[Id] => 726b8b47-be1f-4aea-aa30-f24d08361d52
[ReceiptHandle] => AQEBcWCMm29Cic5pJH+1I0ppsiQxjQw9Q0znj26PZ2P1YQqu5tMvTsCX6t63JgoYvxzH34Ss6oXxzuXe8vXiIVoj7kSFiZdBnPVq+tcEoEFnCfBOtg2WQVONWlN5JYulAIewxXbQS2JZJjIu4HWHHzhS0oRw62OMz325/pbcuaW2a1mfU+Zs7bF9eK6AOCl4RJ0VBACSodpNJtlyqOxnS7C6zkuuVERGuQIxhFFTx44pAHzvQ3+WklGkY05QNNdxUaGzvQGhqzlwFiPwhBi6Cg22PgrSwnSt8Aef1azykibngUP035LOi1ig6Tc5jrWFX39MN+UYt6AVBTELxv4uTIi1VFJue8f8mRxJSL4H+YQH0BBy/zxPAJZANK4E066jbxtgffk8ktJcZOGBCUuFeFSrVA==
)
)
然后循环浏览条目并执行删除操作
//loop through and delete one by one
foreach($chunks as $k=>$entry_chunk){
$result = $this->Sqs->deleteMessageBatch([
'Entries' => $entry_chunk,
'QueueUrl' => $queueUrl
]);
}
这会删除第一个区块(共10个项目),而第二个区块进入,这会给我错误
AWS.SimpleQueueService.TooManyEntriesInBatchRequest(客户端):最大值
每个请求的条目数为10。你已经发送了12个
如何一次删除多封邮件
$chunks = array_chunk($entries, 10, true);
第三个论点似乎是错误的,正因为如此,在第二部分:
[10] => Array
第二个块的第0个元素不应该有索引10,是吗?应该是0。这似乎意味着在它之前有10个未定义的元素,所以显然您仍然试图在一批中删除12条消息。。。10个无效的、未定义的和2个剩余的。由于这个错误,SQS可能不会告诉您前10条消息根本没有意义,因为您已经超过了每个请求的最大消息数(即10条),因此请求已经无效
第三个参数$preserve\u keys
设置为true
,但应为false
保留密钥
$chunks = array_chunk($entries, 10, true); // make chunks of 10 items per array
当设置为TRUE时
键将被保留。默认值为FALSE
,它将以数字方式重新索引块
第三个论点似乎是错误的,正因为如此,在第二部分:
[10] => Array
第二个块的第0个元素不应该有索引10,是吗?应该是0。这似乎意味着在它之前有10个未定义的元素,所以显然您仍然试图在一批中删除12条消息。。。10个无效的、未定义的和2个剩余的。由于这个错误,SQS可能不会告诉您前10条消息根本没有意义,因为您已经超过了每个请求的最大消息数(即10条),因此请求已经无效
第三个参数$preserve\u keys
设置为true
,但应为false
保留密钥
$chunks = array_chunk($entries, 10, true); // make chunks of 10 items per array
当设置为TRUE时
键将被保留。默认值为FALSE
,它将以数字方式重新索引块
这是怎么连接到的?抱歉,删除了批处理文件标签,与此无关,如何连接到??抱歉,删除了批处理文件标签,与此无关,我已经尝试过了,意味着<代码>密钥保存= false < /代码>仍然相同的错误调用循环中的代码> DeleMeMeStEffice(< /代码>)方法,在每次迭代中考虑新对象吗?意思是我的代码是否正确?你的建议在某种程度上起了作用,但现在的问题是,例如:我有
36条消息,它管理4个块,因此,当我循环每个块时,有时它会删除15条消息,有时19
意味着它不会删除所有块。老实说,我并不是真的使用php——我只是在谷歌上搜索了一下array\u chunk()
是如何工作的,似乎你做得不对。转储并检查$k、$entry\U chunk和$result的值应该可以帮助您确定为什么它仍然没有按您期望的方式工作。您可以将此问题提交给任何已知的人吗?在这个问题上,我也找不到任何帮助。令人困惑的是,在循环的时候,它会从第二个块中删除一些项目。我已经尝试过了,这意味着<代码>密钥保存= false <代码>。同样的错误调用循环中的<代码> DeleMeMeStAuthCuffe()/Case>方法,在每次迭代中考虑新对象吗?意思是我的代码是否正确?你的建议在某种程度上起了作用,但现在的问题是,例如:我有36条消息,它管理4个块,因此,当我循环每个块时,有时它会删除15条消息,有时19
意味着它不会删除所有块。老实说,我并不是真的使用php——我只是在谷歌上搜索了一下array\u chunk()
是如何工作的,似乎你做得不对。转储并检查$k、$entry\U chunk和$result的值应该可以帮助您确定为什么它仍然没有按您期望的方式工作。您可以将此问题提交给任何已知的人吗?在这个问题上,我也找不到任何帮助。令人困惑的是,有时它会在循环时从第二个块中删除一些项。