【发布时间】:2015-04-23 13:26:56
【问题描述】:
我的应用程序为需要某种后台处理的作业向 AWS SQS 队列发送消息。我的处理守护进程接收并处理这样的消息:
$result = $sqsClient->receiveMessage([
'QueueUrl' => \Myapp\Config::get('sqs.queue'),
'WaitTimeSeconds' => 20,
'MaxNumberOfMessages' => 1
]);
if (isset($result['Messages'])) {
foreach ($result->getPath('Messages/*/Body') as $messageBody) {
$handler = new \Myapp\Handler();
$handler->dispatch($messageBody);
}
}
这很好用,但是我可以从 SQS 控制台看到我的脚本检索到的消息被放入“正在运行的消息”类别中,然后过一段时间它们又被放回“可用消息”中,并且我的脚本最终又把它们捡起来了。
如何从 SQS 队列中删除消息,或者更好地将它们标记为已完成?
【问题讨论】:
标签: php amazon-web-services amazon-sqs