本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在使用 AWS SDK for PHP 版本 3 的 Amazon SQS 中使用死信队列
其他(源)队列可将无法成功处理的消息转到死信队列。您可以在死信队列中留出和隔离这些消息以确定其处理失败的原因。您必须单独配置将消息发送到死信队列的每个源队列。多个队列可将一个死信队列作为目标。
要了解更多信息,请参阅使用 SQS 死信队列。
以下示例演示如何:
-
使用启用死信队列。SetQueueAttributes
的所有示例代码都可以在此AWS SDK for PHP处找到 GitHub
凭证
运行示例代码之前,请配置您的 AWS 凭证,如 凭证 中所述。然后导入 AWS SDK for PHP,如 基本用法 中所述。
启用死信队列
导入
require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sqs\SqsClient;
示例代码
$queueUrl = "QUEUE_URL"; $client = new SqsClient([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2012-11-05' ]); try { $result = $client->setQueueAttributes([ 'Attributes' => [ 'RedrivePolicy' => "{\"deadLetterTargetArn\":\"DEAD_LETTER_QUEUE_ARN\",\"maxReceiveCount\":\"10\"}" ], 'QueueUrl' => $queueUrl // REQUIRED ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }