Vous pouvez créer des tâches HTTP à l'aide de la méthode BufferTask
ou de la méthode CreateTask
. Cette page explique comment choisir entre les
deux méthodes pour créer des tâches HTTP.
La méthode BufferTask
vous permet de créer une tâche en envoyant une requête HTTP au
file d'attente. La méthode CreateTask
vous permet de créer une tâche en construisant l'objet de tâche. Dans la plupart des cas, la création explicite de l'objet de tâche n'est pas nécessaire. La meilleure méthode pour créer des tâches varie selon que votre file d'attente
d'un routage au niveau de la file d'attente.
Avant de commencer
Consultez la liste suivante des cas d'utilisation pour voir si l'un d'eux vous concerne :
- Vous souhaitez créer des tâches à l'aide de l'API RPC ou des bibliothèques clientes (plutôt que de l'API REST)
- Vous souhaitez créer des tâches en tant qu'objets tâche App Engine (plutôt qu'en tant qu'objets de tâche plus courants pour les cibles HTTP génériques qui peuvent ou non être des cibles App Engine)
Si l'une de ces conditions s'applique à vous, vous n'avez pas besoin de choisir la méthode de création de tâches, car une seule méthode (la méthode CreateTask
) est prise en charge. Accédez directement à la documentation CreateTask
pour votre type de tâche :
Vérifier si votre file d'attente dispose d'un routage au niveau de la file d'attente
Exécutez la commande gcloud CLI suivante dans votre terminal :
gcloud tasks queues describe QUEUE_NAME
Remplacez
QUEUE_NAME
par le nom de votre file d'attente.Dans le résultat, recherchez le champ
httpTarget
et vérifiez siuriOverride
a été défini.Si la sortie inclut une ligne pour
uriOverride
avec unhost
spécifié, votre file d'attente dispose d'un routage au niveau de la file d'attente. Pour choisir votre méthode de création de tâches, consultez la section Files d'attente avec routage au niveau de la file d'attente.Si le résultat n'inclut pas de ligne pour
uriOverride
ou si le La description deuriOverride
n'affiche pas l'élémenthost
spécifié, votre file d'attente le fait le routage au niveau de la file d'attente. Pour choisir votre méthode de création de tâches, consultez les Files d'attente sans routage au niveau de la file d'attente (ou configurer le routage au niveau de la file d'attente).
Files d'attente avec routage au niveau de la file d'attente
Pour les files d'attente avec routage au niveau de la file d'attente, la méthode de création de la tâche dépend des exigences de routage de la tâche :
- La tâche a les mêmes exigences de routage que celles spécifiées au niveau de la file d'attente : utilisez
BufferTask
. Découvrez comment créer des tâches avec la méthodeBufferTask
. - La tâche a des exigences de routage différentes de celles spécifiées au niveau de la file d'attente : définissez UriOverrideEnforceMode sur
IF_NOT_EXISTS
pour vous assurer que le routage au niveau de la file d'attente s'applique aux tâches pour lesquelles le routage n'existe pas (par exemple, les tâchesBufferTask
), mais respecte le routage des tâches qui comportent leurs propres spécifications de routage. Ensuite, utilisezCreateTask
Cette méthode vous permet de spécifier un routage individuel pour la tâche. Découvrez comment créer des tâches à l'aide du moduleCreateTask
.
Files d'attente sans routage au niveau de la file d'attente
Pour les files d'attente sans routage au niveau de la file d'attente, créez des tâches à l'aide de CreateTask
.
(ou
configurer
le routage au niveau de la file d'attente). La méthode CreateTask
inclut la spécification du routage pour la tâche, qui est obligatoire pour les files d'attente qui ne disposent pas déjà d'informations de routage au niveau de la file d'attente. Découvrez comment créer des tâches avec la méthode CreateTask
.
Comprendre le routage au niveau de la file d'attente
Le routage au niveau de la file d'attente vous permet de spécifier des informations de routage par défaut pour les tâches de la file d'attente à laquelle ils se trouvent. Vous pouvez indiquer si vous souhaitez que le routage par défaut ne s'appliquent qu'aux tâches qui ne possèdent pas leurs propres informations de routage, ou à toutes tâches.
Choisissez le routage au niveau de la file d'attente si vous souhaitez :
- Créer des tâches à l'aide de requêtes HTTP standards (plutôt que de créer l'objet de tâche)
- Utiliser une file d'attente comme tampon devant un service cible
L'approche par cible
Le routage au niveau de la file d'attente fonctionne mieux avec les architectures qui utilisent une file d'attente pour chaque service cible. Ce modèle vous permet d'effectuer les opérations suivantes:
- Gérer les tâches en fonction de leur objectif (par exemple, rediriger un groupe de des tâches si le service cible est en panne)
- Envoyer toutes les tâches d'une file d'attente à la même cible
- Créer des tâches sans créer explicitement l'objet de tâche à l'aide de la méthode
BufferTask
Activer et désactiver le comportement de remplacement au niveau de la file d'attente
Une fois que vous avez configuré le routage au niveau de la file d'attente, vous pouvez décider quand il sera appliqué en définissant le paramètre UriOverrideEnforceMode de la file d'attente.
IF_NOT_EXISTS
: le routage au niveau de la file d'attente ne s'applique que lorsqu'une tâche ne contient pas ses propres informations de routage. Utilisez ce paramètre si vous souhaitez que la file d'attente pour pouvoir répartir les tâches sur différentes cibles.ALWAYS
: le routage au niveau de la file d'attente s'applique toujours, même si une tâche contient ses propres informations de routage. Toutes les informations de routage définies au niveau de la tâche sont remplacées par le routage au niveau de la file d'attente. Utilisez ce paramètre si vous souhaitez exiger que les tâches d'une file d'attente donnée utilisent les mêmes informations de routage.