

La AWS SDK pour JavaScript v2 est arrivée end-of-support. Nous vous recommandons de migrer vers la [AWS SDK pour JavaScript version 3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/). Pour plus de détails et d'informations sur la façon de migrer, veuillez consulter cette [annonce](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/).

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'attente active de longue durée dans Amazon SQS
<a name="sqs-examples-enable-long-polling"></a>

![\[JavaScript code example that applies to Node.js execution\]](http://docs.aws.amazon.com/fr_fr/sdk-for-javascript/v2/developer-guide/images/nodeicon.png)

**Cet exemple de code Node.js présente :**
+ Comment activer l'attente active de longue durée pour une nouvelle file d'attente
+ Comment activer l'attente active de longue durée pour une file d'attente existante
+ Comment activer l'attente active de longue durée lors de la réception d'un message

## Scénario
<a name="sqs-examples-enable-long-polling-scenario"></a>

Les longues interrogations réduisent le nombre de réponses vides en permettant à Amazon SQS d'attendre pendant un certain temps qu'un message soit disponible dans la file d'attente avant d'envoyer une réponse. L'attente active de longue durée élimine également les fausses réponses vides en interrogeant tous les serveurs, à la place d'un simple échantillon. Pour activer l'attente active de longue durée, vous devez spécifier un temps d'attente différent de zéro pour les messages reçus. Pour ce faire, vous devez définir le paramètre `ReceiveMessageWaitTimeSeconds` d'une file d'attente ou le paramètre `WaitTimeSeconds` à la réception d'un message.

Dans cet exemple, une série de modules Node.js est utilisée pour activer l'attente active de longue durée. Les modules Node.js utilisent le SDK pour activer les longues JavaScript interrogations à l'aide des méthodes suivantes de la classe `AWS.SQS` client :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#setQueueAttributes-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#setQueueAttributes-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#receiveMessage-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#receiveMessage-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#createQueue-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#createQueue-property)

Pour plus d'informations sur les longs sondages Amazon SQS, consultez la section [Long Polling du manuel](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-long-polling.html) *Amazon Simple Queue Service Developer Guide*.

## Tâches prérequises
<a name="sqs-examples-enable-long-polling-prerequisites"></a>

Pour configurer et exécuter cet exemple, vous devez d'abord :
+ Installez Node.js. Pour plus d'informations sur l'installation de Node.js, consultez le [site web de Node.js](https://nodejs.org).
+ Créez un fichier de configurations partagé avec vos informations d'identification utilisateur. Pour plus d'informations sur le fichier d'informations d'identification partagé, consultez [Chargement des informations d'identification dans Node.js à partir du fichier d'informations d'identification partagé](loading-node-credentials-shared.md).

## Activation de l'attente active de longue durée lors de la création d'une file d'attente
<a name="sqs-examples-enable-long-polling-on-queue-creation"></a>

Créez un module Node.js nommé `sqs_longpolling_createqueue.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon SQS, créez un objet de `AWS.SQS` service. Créez un objet JSON contenant les paramètres obligatoires pour créer une file d'attente, y compris une valeur différente de zéro pour le paramètre `ReceiveMessageWaitTimeSeconds`. Appelez la méthode `createQueue`. L'attente active de longue durée est activée pour la file d'attente.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the SQS service object
var sqs = new AWS.SQS({ apiVersion: "2012-11-05" });

var params = {
  QueueName: "SQS_QUEUE_NAME",
  Attributes: {
    ReceiveMessageWaitTimeSeconds: "20",
  },
};

sqs.createQueue(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data.QueueUrl);
  }
});
```

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande.

```
node sqs_longpolling_createqueue.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sqs/sqs_longpolling_createqueue.js).

## Activation de l'attente active de longue durée pour une file d'attente existante
<a name="sqs-examples-enable-long-polling-existing-queue"></a>

Créez un module Node.js nommé `sqs_longpolling_existingqueue.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon Simple Queue Service, créez un objet `AWS.SQS` de service. Créez un objet JSON contenant les paramètres obligatoires pour définir les attributs de la file d'attente, y compris une valeur différente de zéro pour le paramètre `ReceiveMessageWaitTimeSeconds` et l'URL de la file d'attente. Appelez la méthode `setQueueAttributes`. L'attente active de longue durée est activée pour la file d'attente.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the SQS service object
var sqs = new AWS.SQS({ apiVersion: "2012-11-05" });

var params = {
  Attributes: {
    ReceiveMessageWaitTimeSeconds: "20",
  },
  QueueUrl: "SQS_QUEUE_URL",
};

sqs.setQueueAttributes(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data);
  }
});
```

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande.

```
node sqs_longpolling_existingqueue.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sqs/sqs_longpolling_existingqueue.js).

## Activation de l'attente active de longue durée pour la réception des messages
<a name="sqs-examples-enable-long-polling-on-receive-message"></a>

Créez un module Node.js nommé `sqs_longpolling_receivemessage.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon Simple Queue Service, créez un objet `AWS.SQS` de service. Créez un objet JSON contenant les paramètres obligatoires pour recevoir des messages, y compris une valeur différente de zéro pour le paramètre `WaitTimeSeconds` et l'URL de la file d'attente. Appelez la méthode `receiveMessage`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the SQS service object
var sqs = new AWS.SQS({ apiVersion: "2012-11-05" });

var queueURL = "SQS_QUEUE_URL";

var params = {
  AttributeNames: ["SentTimestamp"],
  MaxNumberOfMessages: 1,
  MessageAttributeNames: ["All"],
  QueueUrl: queueURL,
  WaitTimeSeconds: 20,
};

sqs.receiveMessage(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data);
  }
});
```

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande.

```
node sqs_longpolling_receivemessage.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sqs/sqs_longpolling_receivemessage.js).