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

Matt Shaw de Delicious Brains a récemment publié un article sur une nouvelle bibliothèque qursquoils 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 drsquoattente demplois est un système qui permet de planifier les emplois à exécuter à lrsquoavenir. Nous avons tendance à utiliser le travail pour deux raisons. Tout drsquoabord, 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 jusqursquoà ce qursquoelles soient exécutées, et un job Manager, un outil pour les exécuter. WordPress WP _ Cron correspond à cette description. Cependant, avec WP _ queue, jrsquoai trouvé que crsquoé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 lrsquoexécution et de lrsquoordonnanceur. Je peux écrire une classe de travail et la tester en tant qursquounit é autonome. Deuxièmement, lrsquoutilité 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 drsquoattente wp U est un paquet compositeur. Tout drsquoabord, installez le paquet dans le plug in: Vous devez ajouter la table de base de données à lrsquoordonnanceur. Le fichier README Pack contient des instructions. Ajoutez le au crochet drsquoactivation du plug in ou nrsquoimporte où dans la table drsquoajout. Création demplois si avez déjà utilisé une file drsquoattente demplois 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 lrsquoexé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 lrsquoexécution. Par exemple, supposons que créez une tâche à exécuter chaque fois que enregistrez un message. Dans la méthode Construct (), passez lrsquoID 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 lrsquoID 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 lrsquoenregistrement le travail que nous avons fait jusqursquoà présent était drsquoobtenir le post de la base de données. Bien, nous pouvons lancer un programme drsquoexé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 lrsquoAPI rest pour le message sauvegardé et lrsquoé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 lrsquoexécution et me connecter à lrsquoopé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. Crsquoest une mauvaise science.
Jrsquoa i écrit une méthode similaire pour exécuter un travail, et jrsquoai 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 qursquoil 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. Jrsquoai volé la plupart du Code:
Crsquoest 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. Lemplacement 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 lrsquoexécuter directement de cette façon, où $postId est lrsquoID drsquoun 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 drsquointé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. Lrsquoopération Save _ post est activée lors de lrsquoenregistrement du message afin que nous puissions lrsquoutiliser. Dans la fonction de rappel, nous créerons une instance de classe de travail et la transmettrons à WP _ queue () 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 lrsquoexécution drsquoune tâche est le délai drsquoexécution de la tâche. Le dernier exemple de code nrsquoutilise pas ce paramètre. Une fois la file drsquoattente 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 lrsquoexécuteur de tâches: Nous devons configurer la file drsquoattente drsquoexécution. Nous pouvons utiliser la file drsquoattente WP _ Cron: lors de lrsquoexécution drsquoun développement local, il est préférable drsquoutiliser un pilote de synchronisation plutôt qursquoun pilote de base de données afin que les tâches puissent être exécutées simultanément immédiatement. Crsquoest 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