Copie en file d&rsquoattente WP &amp API rest sur le fichier

Matt Shaw de Delicious Brains a récemment publié un article sur une nouvelle bibliothèque quamp;rsquoils ont créée pour aider à développer un de leurs produits. Cette bibliothèque de files d’attente wp u fournit un système de gestion des tâches similaire à laraver pour WordPress. Une file damp;rsquoattente damp;emplois est un système qui permet de planifier les emplois à exécuter à lamp;rsquoavenir. Nous avons tendance à utiliser le travail pour deux raisons. Tout damp;rsquoabord, devrez peut être attendre un certain temps, par exemple, si voulez programmer un courriel de suivi dans une semaine. Une autre raison est la performance. Peut être avons nous besoin de faire des calculs coûteux, et nous ne voulons pas que les utilisateurs attendent.
Job Manager nous fournit un système de planification, un moyen de stocker les tâches jusquamp;rsquoà ce quamp;rsquoelles soient exécutées, et un job Manager, un outil pour les exécuter. WordPress WP _ Cron correspond à cette description. Cependant, avec WP _ queue, jamp;rsquoai trouvé que camp;rsquoétait mieux adapté à mes besoins. WP _ queue pour une raison ou une autre, les paquets WP queue sont superbes. La première consiste à soustraire les tâches de lamp;rsquoexécution et de lamp;rsquoordonnanceur. Je peux écrire une classe de travail et la tester en tant quamp;rsquounit é autonome. Deuxièmement, lamp;rsquoutilité de la planification est abstraite. Par défaut, les tâches sont enregistrées dans la base de données WordPress, puis programmées au besoin en utilisant WP _ Cron. Mais je peux aussi utiliser un pilote de développement qui les synchronise, et il y a un pilote redis en cours de développement. On y va.
Définir la Bibliothèque de file damp;rsquoattente wp U est un paquet compositeur. Tout damp;rsquoabord, installez le paquet dans le plug in: Vous devez ajouter la table de base de données à lamp;rsquoordonnanceur. Le fichier README Pack contient des instructions. Ajoutez le au crochet damp;rsquoactivation du plug in ou namp;rsquoimporte où dans la table damp;rsquoajout. Création damp;emplois si avez déjà utilisé une file damp;rsquoattente damp;emplois laraver, connaissez bien la structure de la classe wp _ queue job. Votre classe ouvrière
Ou doit avoir une méthode Handle (). Cette méthode est appelée lors de lamp;rsquoexécution du travail. Vous pouvez également avoir une méthode Construct ().
Le concept clé pour comprendre ces classes est que les attributs de classe sont sérialisés dans la base de données au moment de la planification du travail et utilisés pour créer des instances de classe au moment de lamp;rsquoexécution. Par exemple, supposons que créez une tâche à exécuter chaque fois que enregistrez un message. Dans la méthode Construct (), passez lamp;rsquoID Post et utilisez ce paramètre pour définir les propriétés. Lorsque exécutez la méthode handle, la propriété est définie avec lamp;rsquoID post. Dans la méthode handle, pouvez utiliser cette propriété (ID du billet enregistré enregistré enregistré enregistré enregistré avec la tâche) pour obtenir le billet enregistré à partir de la base de données. Voici à quoi il ressemble:
Copier le json du post dans le fichier après lamp;rsquoenregistrement le travail que nous avons fait jusquamp;rsquoà présent était damp;rsquoobtenir le post de la base de données. Bien, nous pouvons lancer un programme damp;rsquoexécution pour programmer cette tâche à exécuter chaque fois que nous sauvegardons un message et nous assurer que cette tâche reçoit une réponse de lamp;rsquoAPI rest pour le message sauvegardé et lamp;rsquoécrit dans le fichier json. Revenons à la liste. Pourquoi est ce arrivé? La dernière exigence sera une classe que je peux tester individuellement et, si possible, configurer lamp;rsquoexécution et me connecter à lamp;rsquoopération Save _ Post, sachant que le travail est réalisable. je fais le contraire, je ne sais pas si mon problème est de travailler ou de faire la queue. Camp;rsquoest une mauvaise science.
Jamp;rsquoa i écrit une méthode similaire pour exécuter un travail, et jamp;rsquoai précédemment sauvegardé un article avec torque en utilisant un autre exécuteur de tâches. Json, qui écrit un article sur un fichier, continuera à travailler sur nos classes de travail. On a tout ce quamp;rsquoil faut pour avoir cet endroit. Nous devons obtenir l’objet de réponse créé par l’api WordPress rest pour le Post, le sérialiser en json et l’écrire dans le fichier. Un peu.
Il n’y a pas si longtemps, j’ai écrit un article pour Torque sur la façon d’obtenir des messages de l’api WordPress rest sans envoyer de requêtes http. Jamp;rsquoai volé la plupart du Code:
Camp;rsquoest tout le travail. J’utilise le contrôle post de l’api WordPress rest pour créer une réponse WP _ rest et j’utilise json encode () pour la définir en chaîne et l’enregistrer dans un fichier appelé Slug post. Lamp;emplacement de stockage et la façon dont les fichiers sont appelés dépendent de vos besoins. Maintenant, nous pouvons créer une instance de cette classe pour voir si elle fonctionne. Nous pouvons lamp;rsquoexécuter directement de cette façon, où $postId est lamp;rsquoID damp;rsquoun post publié: Vous devriez donc voir un fichier avec la représentation json du post dans le chemin défini pour écrire le fichier. Nous pouvons également écrire des tests damp;rsquointégration pour:
Programmer le travail à faire lors de la mise à jour des messages puisque nous savons que si nous prévoyons exécuter notre travail, nous devons programmer son exécution chaque fois que nous sauvegardons un message. Lamp;rsquoopération Save _ post est activée lors de lamp;rsquoenregistrement du message afin que nous puissions lamp;rsquoutiliser. Dans la fonction de rappel, nous créerons une instance de classe de travail et la transmettrons à WP _ queue () amp;gt push (). Il suffit de programmer la mise en œuvre dès que possible. Le deuxième paramètre de la méthode push () qui retarde lamp;rsquoexécution damp;rsquoune tâche est le délai damp;rsquoexécution de la tâche. Le dernier exemple de code namp;rsquoutilise pas ce paramètre. Une fois la file damp;rsquoattente arrivée, le travail est terminé. nous voulons le retarder de 5 minutes, nous pouvons prendre 600 5 minutes de secondes comme deuxième argument.
Dernière étape de la configuration de lamp;rsquoexécuteur de tâches: Nous devons configurer la file damp;rsquoattente damp;rsquoexécution. Nous pouvons utiliser la file damp;rsquoattente WP _ Cron: lors de lamp;rsquoexécution damp;rsquoun développement local, il est préférable damp;rsquoutiliser un pilote de synchronisation plutôt quamp;rsquoun pilote de base de données afin que les tâches puissent être exécutées simultanément immédiatement. Camp;rsquoest le test.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

ContactPress Supported By WordPress Plugins