Maison > Article > développement back-end > Comment résoudre le problème du service d'envoi programmé PHP
Cet article présente principalement la solution au service d'envoi programmé PHP. Les amis qui en ont besoin peuvent s'y référer
Analyse des tâches d'envoi planifiées
Lors du développement d'une application mobile ou de WeChat, il existe souvent des scénarios dans lesquels des messages doivent être envoyés régulièrement.
L'envoi programmé est divisé en deux types :
L'un consiste à fixer l'heure pendant le développement, et le gestionnaire d'arrière-plan ne peut choisir que les messages à transmettre
L'autre est que l'administrateur en arrière-plan peut choisir librement l'heure et le message à envoyer ; l'envoi planifié n'est pas pris en charge car PHP est un langage de script ; Dans la plupart des cas, le navigateur est fermé et PHP ne s'exécutera pas. La plupart du temps, cela dépend de quelque chose d’extérieur.1. Heure fixe La plupart des systèmes de serveur sont Windows ou Linux.
Linux : utilisez CronTab pour exécuter php régulièrement Tout d'abord, entrez en mode ligne de commande. En tant que serveur, Linux passe généralement par défaut en mode ligne de commande. Bien entendu, notre serveur de gestion se connecte également généralement au serveur à distance via des outils tels que putty. Pour plus de commodité, nous nous connectons en tant qu'utilisateur root. Tapez la ligne de commande :
Après cela, un fichier sera ouvert et il est dans un état de non-édition, qui est l'édition interface de vi. En tapant sur le clavier i, entrez dans le mode d’édition et vous pourrez modifier le contenu. Chaque ligne de ce fichier est une tâche planifiée. Lorsque nous créons une nouvelle ligne, nous créons une nouvelle tâche planifiée (bien sûr, cela signifie que cette ligne est écrite dans un certain format). Prenons maintenant un exemple et ajoutons une ligne avec le contenu suivant :
crontab -e
Qu'est-ce que cela signifie ? En fait, la ligne ci-dessus se compose de deux parties, la première partie est l'heure et la dernière partie est le contenu de l'opération. Par exemple, ce qui précède,
00 * * * * lynx -dump https://www.yourdomain.com/script.php
, signifie que lorsque les minutes de l'heure actuelle sont 00, la tâche planifiée sera exécutée. La partie heure est composée de 5 paramètres horaires, qui sont :
Heure, jour, mois et semaine
La première colonne représente les minutes 1 à 59. Chaque minute est représentée par ou */1, /n représente toutes les n minutes, par exemple, */8 signifie toutes les 8 minutes, et ce qui suit est analogue
ccokov chez nous en date 1~3100 * * * *4 La colonne représente le mois 1~12
# son Up dans le numéro d'identification de la semaine 0~6 (0 représente dimanche]
La dernière partie de la phrase entière est le contenu spécifique de l'opération.
Cela signifie accéder à cette URL via Lynx. Nous utilisons principalement lynx, curl et wget pour accéder à distance aux URL. Si nous voulons améliorer l'efficacité, utiliser directement PHP pour exécuter des fichiers PHP locaux est le meilleur choix, par exemple :
Cette instruction peut exécuter script.php via l'environnement php interne de Linux à 0 minute toutes les 2 heures. Notez que cela n'est pas accessible via l'URL, mais exécuté via l'environnement du serveur, mais exécutez-le. directement, car l'environnement du serveur est contourné, donc l'efficacité est bien sûr beaucoup plus élevée.
lynx -dump https://www.yourdomain.com/script.php
D'accord, j'ai ajouté quelques tâches planifiées obligatoires. Cliquez sur la touche Échap du clavier, entrez ":wq" et appuyez sur Entrée. Cela enregistre la tâche planifiée définie et vous pouvez également voir une invite à l'écran indiquant qu'une nouvelle tâche planifiée a été créée. L'étape suivante consiste à écrire correctement votre script.php.
Windows : Il existe un fichier cmd et bat similaire sous Windows et Linux. Le fichier bat est similaire à un fichier shell. L'exécution de ce fichier bat équivaut à exécuter les commandes qu'il contient en séquence (bien sûr). , vous pouvez La programmation est implémentée via la logique), nous pouvons donc utiliser le fichier de commande bat pour implémenter les tâches planifiées PHP sur le serveur Windows. En fait, le principe des tâches planifiées sous Windows est le même que celui sous Linux, mais les méthodes et approches sont différentes. Bon, commençons. Tout d'abord, créez un fichier cron.bat dans un emplacement que vous jugez plus approprié, puis ouvrez-le avec un éditeur de texte (le bloc-notes fonctionnera) et écrivez-y le contenu suivant :00 */2 * * * /usr/local/bin/php /home/www/script.php
Ce que cette phrase signifie, c'est que l'utilisation de php.exe pour exécuter le fichier php test.php est la même que le contab ci-dessus, en contournant l'environnement du serveur et en améliorant l'efficacité de l'exécution. . Il est également relativement élevé. Après avoir écrit, cliquez sur Enregistrer et fermez l'éditeur.
L'étape suivante consiste à configurer une tâche planifiée pour exécuter cron.bat. Ouvrez dans l'ordre : "Démarrer -> Panneau de configuration -> Planification des tâches -> Ajouter une planification des tâches", définissez l'heure et le mot de passe de la tâche planifiée dans l'interface ouverte et montez cron.bat en le sélectionnant. OK, de cette façon, une tâche planifiée est créée. Cliquez avec le bouton droit sur la tâche planifiée et exécutez-la. Lorsque le temps sera écoulé, cron.bat sera exécuté pour le traitement, et cron.bat. exécutera php.
2. Choisissez librement l'heure
Le système de blogging couramment utilisé wordpress dispose d'un fichier wp-corn pour effectuer la publication programmée des blogs. Le blogueur utilise wp-corn comme. le prototype pour écrire un fichier.
wp-corn est une stratégie qui consomme beaucoup de ressources serveur. Lorsque tout le monde visite le blog, le fichier wp-corn sera appelé (lisez l'heure actuelle du serveur et déterminez s'il faut l'envoyer). L'inconvénient est qu'il ne peut pas être envoyé à temps lorsque le nombre de visiteurs est relativement faible. S'il y a trop de visiteurs, les performances du serveur seront réduites.
Lorsque le blogueur travaille sur le projet, l'entreprise fournit un serveur Windows. La méthode utilisée consiste à ouvrir une page sur le serveur et à la rafraîchir automatiquement toutes les minutes (script js simple, aucun code n'est fourni).
Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !
Recommandations associées :
Analyse d'interface prédéfinie de PHP
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!