Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Administración del tiempo de espera de visibilidad en Amazon SQS con la versión 3 de AWS SDK for PHP
Un tiempo de espera de visibilidad es un intervalo durante el cual Amazon SQS impide que otros componentes consumidores reciban y procesen un mensaje. Para obtener más información, consulte Tiempo de espera de visibilidad.
El siguiente ejemplo muestra cómo:
-
Cambie el tiempo de espera de visibilidad de los mensajes especificados en una cola a nuevos valores, utilizando. ChangeMessageVisibilityBatch
Todo el código de ejemplo para el AWS SDK for PHP está disponible aquí en. GitHub
Credenciales
Antes de ejecutar el código de ejemplo, configure sus credenciales de AWS, como se indica en Credentials. A continuación, importe AWS SDK for PHP, como se indica en Uso básico.
Cambiar el tiempo de espera de visibilidad de varios mensajes
Importaciones
require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sqs\SqsClient;
Código de muestra
$queueUrl = "QUEUE_URL"; $client = new SqsClient([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2012-11-05' ]); try { $result = $client->receiveMessage(array( 'AttributeNames' => ['SentTimestamp'], 'MaxNumberOfMessages' => 10, 'MessageAttributeNames' => ['All'], 'QueueUrl' => $queueUrl, // REQUIRED )); $messages = $result->get('Messages'); if ($messages != null) { $entries = array(); for ($i = 0; $i < count($messages); $i++) { $entries[] = [ 'Id' => 'unique_is_msg' . $i, // REQUIRED 'ReceiptHandle' => $messages[$i]['ReceiptHandle'], // REQUIRED 'VisibilityTimeout' => 3600 ]; } $result = $client->changeMessageVisibilityBatch([ 'Entries' => $entries, 'QueueUrl' => $queueUrl ]); var_dump($result); } else { echo "No messages in queue \n"; } } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }