Abilitazione del polling lungo in Amazon SQS conAWS SDK for PHPVersione 3 - AWS SDK for PHP

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à.

Abilitazione del polling lungo in Amazon SQS conAWS SDK for PHPVersione 3

Il polling lungo riduce il numero di risposte vuote consentendo ad Amazon SQS di attendere per un intervallo di tempo specifico che il messaggio diventi disponibile nella coda prima di inviare una risposta. Inoltre, il polling lungo elimina le risposte vuote false creando delle query per tutti i server invece di effettuarne il campionamento. Per abilitare il polling lungo, specifica un tempo di attesa diverso da zero per i messaggi ricevuti. Per ulteriori informazioni, consulta la sezione relativa al polling lungo di SQS.

Gli esempi seguenti mostrano come:

  • Impostare gli attributi su una coda Amazon SQS per abilitare il polling lungo, tramiteSetQueueAttributes.

  • Recuperare uno o più messaggi con il polling lungo tramite ReceiveMessage.

  • Creare una coda di polling lungo tramite CreateQueue.

La versione integrale del codice di esempio di AWS SDK for PHP è disponibile qui su GitHub.

Credenziali

Prima di eseguire il codice di esempio, configura ilAWScredenziali come descritto nellaImpostazione delle credenziali . Quindi importaAWS SDK for PHPcome descritto nellaUtilizzo di base.

Impostazione degli attributi su una coda per abilitare il polling lungo

Importazioni

require 'vendor/autoload.php'; use Aws\Sqs\SqsClient; use Aws\Exception\AwsException;

Codice di esempio

$queueUrl = "QUEUE_URL"; $client = new SqsClient([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2012-11-05' ]); try { $result = $client->setQueueAttributes(array( 'Attributes' => [ 'ReceiveMessageWaitTimeSeconds' => 20 ], 'QueueUrl' => $queueUrl, // REQUIRED )); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

Recupero dei messaggi con polling lungo

Importazioni

require 'vendor/autoload.php'; use Aws\Sqs\SqsClient; use Aws\Exception\AwsException;

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' => 1, 'MessageAttributeNames' => ['All'], 'QueueUrl' => $queueUrl, // REQUIRED 'WaitTimeSeconds' => 20, )); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

Creazione di una coda con polling lungo

Importazioni

require 'vendor/autoload.php'; use Aws\Sqs\SqsClient; use Aws\Exception\AwsException;

Codice di esempio

$queueName = "QUEUE_NAME"; $client = new SqsClient([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2012-11-05' ]); try { $result = $client->createQueue(array( 'QueueName' => $queueName, 'Attributes' => array( 'ReceiveMessageWaitTimeSeconds' => 20 ), )); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }