【问题标题】:Amazon SQS Messages not deleting in PHPAmazon SQS 消息未在 PHP 中删除
【发布时间】:2012-08-25 23:12:52
【问题描述】:

我列出了我的 Amazon SQS 队列中的消息,然后可以选择删除它们,一次一条。当我删除消息时,我会收到一条成功消息。但是,没有一条消息被删除,它们都返回到队列中。

这是列表队列代码:

<?php
include_once("sdk.class.php");

// Instantiate
$sqs = new AmazonSQS();
$rows = $sqs->get_queue_size('https://sqs.us-east-1.amazonaws.com/199992002821/SomeQueueSQS');

echo "<table>";
echo "<tr>";
echo "<td width=20 valign=top bgcolor=" . $adHeading . " align=left><strong>No</strong></td>";
echo "<td width=200 valign=top bgcolor=" . $adHeading . " align=left><strong>Message</strong></td>";
echo "<td width=50 align='right' bgcolor=" . $adHeading . "><a href='sqs.php'><img src='images/icon_refresh.png' border='0'></a></td>";
echo "</tr>";

for ($j = 0; $j < $rows; ++$j)
  {

    // Get Message
    $response = $sqs->receive_message('https://sqs.us-east-1.amazonaws.com/199992002821/SomeQueueSQS', array(
  'VisibilityTimeout' => 30
));
$body = $response->body->ReceiveMessageResult->Message[0]->Body;
$rcpt_hand=($response->body->ReceiveMessageResult->Message[0]->ReceiptHandle);

    $id = $j + 1;

    echo "<tr>";
    echo "<td valign=top bgcolor=" . $bgcolor . ">$id</td>";
    echo "<td valign=top bgcolor=" . $bgcolor . ">$body</td>";
    echo "<td valign=top><a href=sqsdelete.php?sid=$rcpt_hand><img   src=images/icon_delete.gif border=0 width=18 height=18></a></td>";
    echo "</tr>";

  }

echo "</table>";
?>

这里是删除代码:

<?php

if ($response = $sqs->delete_message('https://sqs.us-east-1.amazonaws.com/199992002821/SomeQueueSQS', $rcpt_hand)) {
  echo "Message deleted<br>";
} else {
  echo "Message not deleted<br>";
}

// Get list of unprocessed and valid messages
$rows = $sqs->get_queue_size('https://sqs.us-east-1.amazonaws.com/199992002821/SomeQueueSQS');

echo "<table>";
etc...

谢谢

安德烈

【问题讨论】:

    标签: php amazon-web-services amazon-sqs


    【解决方案1】:

    删除代码中的if() 条件错误。您的条件将始终返回 true。

    您需要提出请求,然后检查$response-&gt;isOK()true 还是false。如果请求成功完成,AWS会返回2xx状态码,isOK()方法会返回true

    如果您进行了更改并开始看到失败,请使用 print_r($response-&gt;body) 查看 SQS 发回的错误消息。这应该可以帮助您调试。

    【讨论】:

      猜你喜欢
      • 2012-04-28
      • 1970-01-01
      • 2016-04-29
      • 2013-10-17
      • 1970-01-01
      • 1970-01-01
      • 2014-11-10
      • 2016-03-05
      • 2015-09-09
      相关资源
      最近更新 更多