Nous avons annoncé
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Activation de l'interrogation longue pourAmazon SQSFiles d'attente de messages
Amazon SQSles usagesinterrogation courtepar défaut, en interrogeant uniquement un sous-ensemble des serveurs (selon une distribution aléatoire pondérée) pour déterminer si des messages peuvent être inclus dans la réponse.
Les sondages longs permettent de réduire les coûts d'utilisationAmazon SQSen réduisant le nombre de réponses vides lorsqu'il n'y a pas de messages à renvoyer en réponse à un ReceiveMessage demande envoyée à unAmazon SQSfile d'attente et élimination des réponses fausses vides.
Note
Vous pouvez définir une fréquence d'attente active de longue durée à partir de1 à 20 secondes.
Activation de l'attente active de longue durée lors de la création d'une file d'attente
Pour activer l'interrogation longue lors de la création d'unAmazon SQSfile d'attente, définissez laReceiveMessageWaitTimeSeconds
Attribut sur l'objetCreateQueueRequestobjet avant d'appeler la classe AmazonSQScreateQueue
Méthode.
Importations
import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.AmazonSQSException; import com.amazonaws.services.sqs.model.CreateQueueRequest;
Code
final AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); // Enable long polling when creating a queue CreateQueueRequest create_request = new CreateQueueRequest() .withQueueName(queue_name) .addAttributesEntry("ReceiveMessageWaitTimeSeconds", "20"); try { sqs.createQueue(create_request); } catch (AmazonSQSException e) { if (!e.getErrorCode().equals("QueueAlreadyExists")) { throw e; } }
Veuillez consulter l'exemple complet
Activation de l'attente active de longue durée pour une file d'attente existante
En plus de l'activation de l'attente active de longue durée lors de la création d'une file d'attente, vous pouvez également l'activer sur une file d'attente existante en définissantReceiveMessageWaitTimeSeconds
sur leSetQueueAttributesRequestavant d'appeler la classe AmazonSQSsetQueueAttributes
Méthode.
Importations
import com.amazonaws.services.sqs.model.SetQueueAttributesRequest;
Code
SetQueueAttributesRequest set_attrs_request = new SetQueueAttributesRequest() .withQueueUrl(queue_url) .addAttributesEntry("ReceiveMessageWaitTimeSeconds", "20"); sqs.setQueueAttributes(set_attrs_request);
Veuillez consulter l'exemple complet
Activation de l'attente active de longue durée pour la réception des messages
Vous pouvez activer l'interrogation longue lors de la réception d'un message en définissant le temps d'attente en secondes sur leReceiveMessageRequestque vous fournissez à la classe AmazonSQSreceiveMessage
Méthode.
Note
Vous devez vous assurer que leAWSLe délai d'expiration de la demande du client est supérieur à la durée maximale d'attente active de longue durée (20 secondes) de manière à ce que votrereceiveMessage
les demandes n'arrivent pas à attendre le prochain événement de sondage !
Importations
import com.amazonaws.services.sqs.model.ReceiveMessageRequest;
Code
ReceiveMessageRequest receive_request = new ReceiveMessageRequest() .withQueueUrl(queue_url) .withWaitTimeSeconds(20); sqs.receiveMessage(receive_request);
Veuillez consulter l'exemple complet
Plus d'informations
-
Amazon SQSAttente active de longue durée d'dans leAmazon SQSManuel du développeur
-
CreateQueuedans leAmazon SQSAPI Reference
-
ReceiveMessagedans leAmazon SQSAPI Reference
-
SetQueueAttributesdans leAmazon SQSAPI Reference