Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Gestione del timeout di visibilità in Amazon SQS AWS SDK for PHP con la versione 3
Un timeout di visibilità è un periodo di tempo durante il quale Amazon SQS impedisce ad altri componenti che consumano di ricevere ed elaborare un messaggio. Per ulteriori informazioni, consulta Timeout visibilità.
Gli esempi seguenti mostrano come:
-
Modifica il timeout di visibilità di messaggi specificati in una coda con nuovi valori, utilizzando. ChangeMessageVisibilityBatch
Tutto il codice di esempio per il AWS SDK for PHP è disponibile qui
Credenziali
Prima di eseguire il codice di esempio, configurate AWS le vostre credenziali, come descritto inCredenziali. Quindi importate il fileAWS SDK for PHP, come descritto inUtilizzo di base.
Modificare il timeout di visibilità di più messaggi
Importazioni
require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sqs\SqsClient;
Codice di esempio
$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()); }