


Tâches asynchrones et planification à l'aide de PHP et Google Cloud Tasks
Qu'il s'agisse d'une application en ligne ou de tâches de traitement hors ligne, le traitement et la planification des tâches asynchrones sont très importants pour les applications Web qui gèrent diverses tâches. Afin de mieux gérer les tâches, de maintenir l'évolutivité des applications Web et d'améliorer les performances des applications, nous devons nous appuyer sur le traitement et la planification asynchrones des tâches.
Google Cloud Tasks est un service entièrement géré qui facilite l'exécution de tâches périodiques et asynchrones via des appels API. Cet article vous montrera comment implémenter des tâches et une planification asynchrones à l'aide de PHP et Google Cloud Tasks. Nous apprendrons comment configurer Google Cloud Tasks et comment utiliser les files d'attente de tâches.
Avant de commencer, nous devons installer le SDK Google Cloud, configurer Google Cloud Tasks et créer un projet Google Cloud pour utiliser le service.
Installer le SDK Google Cloud
Le SDK Google Cloud est un outil de ligne de commande couramment utilisé pour gérer et exécuter des ressources cloud. Vous pouvez installer le SDK Google Cloud à l'aide de la commande suivante :
curl https://sdk.cloud.google.com | bash
Pendant le processus d'installation, vous devez suivre les invites à l'écran et saisir les informations de votre compte Google.
Configurer Google Cloud Tasks
Ensuite, nous devons configurer Google Cloud Tasks. Dans Cloud Tasks, une tâche se compose de trois éléments clés : la file d'attente des tâches, la tâche et l'exécuteur.
Une file d'attente de tâches est une ressource avec un nom spécifique qui vous permet de placer de nouvelles tâches. Les noms de files d’attente de tâches sont globalement uniques.
Les tâches sont des objets descriptifs que vous créez et ajoutez à une file d'attente de tâches.
L'exécuteur est le code réel appelé lors de l'exécution de la tâche, généralement situé dans votre application Web.
Dans ce tutoriel, nous utiliserons les valeurs suivantes :
- ID du projet : mon-id-projet
- ID de la file d'attente des tâches : ma-file d'attente
- URL de la fonction Cloud : https://us-central1-my-project - id.cloudfunctions.net/processTask
Maintenant, configurons rapidement Cloud Tasks.
- Tout d'abord, nous devons activer l'API de tâches pour Cloud Tasks. Dans Cloud Console, sélectionnez le projet à partir duquel vous souhaitez configurer Cloud Tasks et accédez à API et services > Bibliothèques. Tapez « API Cloud Tasks » dans la zone de recherche et cliquez sur API Cloud Tasks pour l'activer.
- Ensuite, nous devons créer la file d'attente des tâches. Nous pouvons utiliser la commande gcloud suivante :
gcloud tasks queues create my-queue
Cette commande créera une file d'attente de tâches nommée my-queue. Si vous utilisez d'autres services, tels qu'App Engine ou Cloud Functions, vous pouvez les lier à cette file d'attente pour faciliter le traitement des tâches.
- Créez un exécuteur testamentaire. Dans ce didacticiel, nous utiliserons Cloud Functions comme exécuteur. Par conséquent, nous devons créer une fonction Cloud.
Dans Cloud Console, sélectionnez le projet à partir duquel vous souhaitez configurer Cloud Functions et accédez à Cloud Functions. Cliquez sur Créer une fonction et entrez le nom « processTask » pour la nouvelle fonction.
Nous utiliserons le code de fonction Cloud suivant :
<?php use GoogleCloudStorageStorageClient; use GoogleCloudLoggingLoggingClient; function processTask($data, $context) { $bucket = 'my-bucket'; $logging = new LoggingClient(['projectId' => 'my-project-id']); $logger = $logging->psrLogger('my-logger'); $logger->info('Starting task', ['data' => $data]); $storage = new StorageClient(['projectId' => 'my-project-id']); $bucket = $storage->bucket('my-bucket'); // TODO: Process the task $logger->info('Task completed successfully.'); }
Cette fonction nécessite un accès à Google Cloud Storage, nous devons donc également lui accorder l'accès. Dans Cloud Console, accédez à Stockage > Parcourir. Ensuite, cliquez sur Créer un compartiment, sélectionnez le stockage standard pour le nouveau compartiment et saisissez le nom « mon-bucket ».
Dans l'onglet bucket, cliquez sur "Autorisations". Sélectionnez « Ajouter une entité » pour ajouter l'autorisation du programme « cloud-tasks@cloudtasks.googleapis.com » au service. Sous Sélectionner un rôle, dans la liste déroulante Rôle, sélectionnez Exécuteur de tâches Cloud Tasks.
La fonction Cloud est désormais prête à utiliser le code de partage de tâches.
- Créez des tâches. Nous pouvons maintenant créer des tâches pour la file d'attente des tâches. Nous utiliserons la commande gcloud suivante :
gcloud tasks create-http-task --queue=my-queue --url=https://us-central1-my-project-id.cloudfunctions.net/processTask --http-method=POST --body='{"message":"hello world"}'
À l'aide de la commande gcloud ci-dessus, nous créerons une requête POST au format JSON avec l'attribut "message" défini sur "hello world". Cette tâche sera ajoutée à la file d'attente my-queue.
C'est tout pour obtenir la configuration complète de Cloud Tasks.
Chargement de Cloud Tasks à l'aide de PHP
Maintenant que nous avons les paramètres pour Cloud Tasks, chargeons Cloud Tasks à l'aide de PHP. Google fournit un package PHP officiel appelé google/cloud-tasks. Vous pouvez l'installer en utilisant Composer :
composer require google/cloud-tasks
Nous pouvons maintenant écrire le code PHP pour créer la tâche et l'ajouter à la file d'attente des tâches. Regardons l'exemple suivant :
<?php require_once __DIR__ . '/vendor/autoload.php'; use GoogleCloudTasksV2CloudTasksClient; use GoogleCloudTasksV2HttpMethod; use GoogleCloudTasksV2Queue; use GoogleCloudTasksV2Task; use GoogleProtobufDuration; $projectId = 'my-project-id'; $location = 'us-central1'; $queueId = 'my-queue'; $cloudTasksClient = new CloudTasksClient(); $queueName = $cloudTasksClient->queueName($projectId, $location, $queueId); $queue = new Queue(); $queue->setName($queueName); $taskName = $cloudTasksClient->taskName($projectId, $location, $queueId, uniqid()); $task = new Task(); $task->setName($taskName); $taskHttpReq = new GoogleCloudTasksV2HttpRequest(); $taskHttpReq->setUrl('https://us-central1-my-project-id.cloudfunctions.net/processTask'); $taskHttpReq->setHttpMethod(HttpMethod::POST); $taskHttpReq->setBody(json_encode(['message' => 'hello world'])); $task->setHttpRequest($taskHttpReq); $delay = new Duration(); $delay->setSeconds(10); $task->setScheduleTime($delay); $cloudTasksClient->createTask($queue, $task); $cloudTasksClient->close();
Ce code créera une file d'attente de tâches appelée "my-queue". Ensuite, il crée une tâche et l'ajoute à la file d'attente. La tâche contient l'URL, la méthode HTTP et le corps de données de la requête POST.
La tâche contient également une heure planifiée pour que la tâche soit exécutée après 10 secondes.
Enfin, nous utilisons la méthode "createTask" pour ajouter la tâche à la file d'attente.
Résumé
Cet article vous montre comment implémenter la planification des tâches et le traitement des tâches asynchrones à l'aide de PHP et de Google Cloud Tasks. Cloud Tasks est un service entièrement géré qui facilite l'appel d'API qui effectuent des tâches périodiques et asynchrones. Nous avons mis en place une fonction Cloud, créé une file d'attente de tâches et ajouté des tâches à la file d'attente à l'aide de PHP.
Dans une application réelle, des fonctions et des services plus complexes peuvent être ajoutés, et davantage de files d'attente et de tâches peuvent être ajoutées selon les besoins. Cependant, cela devrait vous donner un bon point de départ pour intégrer Google Cloud Tasks dans votre application Web.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Cet article expliquera en détail comment PHP formate les lignes en CSV et écrit les pointeurs de fichiers. Je pense que c'est assez pratique, je le partage donc avec vous comme référence. J'espère que vous pourrez gagner quelque chose après avoir lu cet article. Formater les lignes au format CSV et écrire dans le pointeur de fichier Étape 1 : Ouvrir le pointeur de fichier $file=fopen("path/to/file.csv","w"); Étape 2 : Convertir les lignes en chaîne CSV à l'aide de la fonction fputcsv( ) convertit les lignes en chaînes CSV. La fonction accepte les paramètres suivants : $file : pointeur de fichier $fields : champs CSV sous forme de tableau $delimiter : délimiteur de champ (facultatif) $enclosure : guillemets de champ (

Cet article expliquera en détail la modification de l'umask actuel en PHP. L'éditeur pense que c'est assez pratique, je le partage donc avec vous comme référence. J'espère que vous pourrez gagner quelque chose après avoir lu cet article. Présentation de PHP modifiant l'umask actuel umask est une fonction php utilisée pour définir les autorisations de fichier par défaut pour les fichiers et répertoires nouvellement créés. Il accepte un argument, qui est un nombre octal représentant l'autorisation de bloquer. Par exemple, pour empêcher l'autorisation d'écriture sur les fichiers nouvellement créés, vous utiliserez 002. Méthodes pour modifier l'umask Il existe deux manières de modifier l'umask actuel en PHP : En utilisant la fonction umask() : La fonction umask() modifie directement l'umask actuel. Sa syntaxe est : intumas

Cet article expliquera en détail comment créer un fichier avec un nom de fichier unique en PHP. L'éditeur pense que c'est assez pratique, je le partage donc avec vous comme référence. J'espère que vous pourrez gagner quelque chose après avoir lu cet article. Création de fichiers avec des noms de fichiers uniques en PHP Introduction La création de fichiers avec des noms de fichiers uniques en PHP est essentielle pour organiser et gérer votre système de fichiers. Les noms de fichiers uniques garantissent que les fichiers existants ne sont pas écrasés et facilitent la recherche et la récupération de fichiers spécifiques. Ce guide couvrira plusieurs façons de générer des noms de fichiers uniques en PHP. Méthode 1 : utiliser la fonction uniqid() La fonction uniqid() génère une chaîne unique basée sur l'heure et les microsecondes actuelles. Cette chaîne peut être utilisée comme base pour le nom du fichier.

Cet article expliquera en détail le calcul par PHP du hachage MD5 des fichiers. L'éditeur pense que c'est assez pratique, je le partage donc avec vous comme référence. J'espère que vous pourrez gagner quelque chose après avoir lu cet article. PHP calcule le hachage MD5 d'un fichier. MD5 (MessageDigest5) est un algorithme de chiffrement unidirectionnel qui convertit les messages de longueur arbitraire en une valeur de hachage de 128 bits de longueur fixe. Il est largement utilisé pour garantir l’intégrité des fichiers, vérifier l’authenticité des données et créer des signatures numériques. Calculer le hachage MD5 d'un fichier en PHP PHP propose plusieurs méthodes pour calculer le hachage MD5 d'un fichier : Utilisez la fonction md5_file() La fonction md5_file() calcule directement la valeur de hachage MD5 du fichier et renvoie une valeur de 32 caractères.

Cet article expliquera en détail comment PHP renvoie un tableau après avoir inversé la valeur de la clé. L'éditeur pense que c'est assez pratique, je le partage donc avec vous comme référence. J'espère que vous pourrez gagner quelque chose après avoir lu cet article. PHP Key Value Flip Array Key Value Flip est une opération sur un tableau qui échange les clés et les valeurs du tableau pour générer un nouveau tableau avec la clé d'origine comme valeur et la valeur d'origine comme clé. Méthode d'implémentation En PHP, vous pouvez effectuer un retournement clé-valeur d'un tableau via les méthodes suivantes : Fonction array_flip() : La fonction array_flip() est spécialement utilisée pour les opérations de retournement clé-valeur. Il reçoit un tableau en argument et renvoie un nouveau tableau avec les clés et les valeurs échangées. $original_array=[

Cet article expliquera en détail comment PHP tronque les fichiers à une longueur donnée. L'éditeur pense que c'est assez pratique, je le partage donc avec vous comme référence. J'espère que vous pourrez gagner quelque chose après avoir lu cet article. Introduction à la troncature de fichiers PHP La fonction file_put_contents() en PHP peut être utilisée pour tronquer des fichiers à une longueur spécifiée. La troncature consiste à supprimer une partie de la fin d'un fichier, raccourcissant ainsi la longueur du fichier. Syntaxe file_put_contents($filename,$data,SEEK_SET,$offset);$filename : le chemin du fichier à tronquer. $data : Chaîne vide à écrire dans le fichier. SEEK_SET : désigné comme début du fichier

Cet article expliquera en détail comment PHP détermine si une clé spécifiée existe dans un tableau. L'éditeur pense que c'est très pratique, je le partage donc avec vous comme référence. J'espère que vous pourrez gagner quelque chose après avoir lu cet article. PHP détermine si une clé spécifiée existe dans un tableau : En PHP, il existe de nombreuses façons de déterminer si une clé spécifiée existe dans un tableau : 1. Utilisez la fonction isset() : isset($array["key"]) Cette fonction renvoie une valeur booléenne, vraie si la clé spécifiée existe, fausse sinon. 2. Utilisez la fonction array_key_exists() : array_key_exists("key",$arr

Cet article expliquera en détail le codage numérique du message d'erreur renvoyé par PHP lors de l'opération Mysql précédente. L'éditeur pense que c'est assez pratique, je le partage donc avec vous comme référence. J'espère que vous pourrez gagner quelque chose après avoir lu cet article. . Utilisation de PHP pour renvoyer les informations d'erreur MySQL Introduction au codage numérique Lors du traitement des requêtes MySQL, vous pouvez rencontrer des erreurs. Afin de gérer efficacement ces erreurs, il est crucial de comprendre le codage numérique des messages d’erreur. Cet article vous guidera dans l'utilisation de php pour obtenir l'encodage numérique des messages d'erreur Mysql. Méthode d'obtention du codage numérique des informations d'erreur 1. mysqli_errno() La fonction mysqli_errno() renvoie le numéro d'erreur le plus récent de la connexion MySQL actuelle. La syntaxe est la suivante : $erro
