Maison > Article > développement back-end > Comment implémenter des tâches planifiées en PHP ?
Nous vous avons présenté le principe de mise en œuvre des tâches planifiées PHP dans notre article précédent. Je pense que tout le monde comprend le principe des tâches planifiées PHP, nous allons donc aujourd'hui vous présenter PHP Comment. implémentez les tâches planifiées !
Recommandation de cours : "Cours de formation en ligne PHP"
1.
1. Écrivez un programme PHP, nommé test.php
, avec le contenu comme suit
<? $fp = fopen("test.txt", "a+"); fwrite($fp, date("Y-m-d H:i:s") . " 成功成功了!\n"); fclose($fp); ?>
Écrivez le programme avec audace, vous pouvez utiliser n'importe quel includerequire, pas de problème
2 Créez un nouveau fichier Bat
, nommé test.bat, le contenu est le suivant :
D:\php\php.exe -q D:\website\test.php
3. Créez des tâches planifiées WINDOWS :
Démarrer–>Panneau de configuration–>Planification des tâches–>Ajouter une planification des tâches
Parcourir Sélectionnez le fichier bat
ci-dessus dans le dossier
Définissez l'heure et le mot de passe (connexion à WINDOWS)
Enregistrez-le.
4. Terminé ! Vous pouvez cliquer avec le bouton droit sur la tâche planifiée et cliquer sur "Exécuter" pour essayer
2. Dans Utiliser PHP pour exécuter des scripts
revient à appeler des scripts shell ordinaires dans Crontab (utilisation spécifique de Crontab), en utilisant des programmes PHP pour appeler des scripts PHP. Crontab
toutes les heures comme suit :
myscript.php
# crontab -e 00 * * * * /usr/local/bin/php /home/john/myscript.php
pour PHP Le chemin du programme.
/usr/local/bin/php
2. Utilisez l'URL pour exécuter des scripts dans Crontab
Si votre script PHP peut être déclenché par une URL, vous pouvez utiliser lynx ou curl ou wget pour configurer votre Crontab .
L'exemple suivant utilise le navigateur de texte Lynx pour accéder à une URL afin d'exécuter un script PHP toutes les heures. Le navigateur de texte Lynx utilise le mode conversationnel pour ouvrir les URL par défaut. Cependant, comme indiqué ci-dessous, j'utilise l'optiondans la ligne de commande lynx pour convertir la sortie URL en sortie standard.
-dump
00 * * * * lynx -dump http: //www.centos.bz/myscript.php
L'exemple suivant utilise CURL pour accéder à l'URL afin d'exécuter un script PHP toutes les 5 minutes. Curl affiche la sortie sur la sortie standard par défaut. Vous pouvez également transférer la sortie du script vers un fichier temporaire en utilisant l'option "curl -o".
L'exemple suivant utilise WGET pour accéder à l'URL afin d'exécuter un script PHP toutes les 10 minutes. L'option -q indique le mode silencieux. "-O temp.txt" signifie que la sortie sera envoyée dans un fichier temporaire
*/5 * * * * /usr/bin/curl -o temp.txt http: //www.centos.bz/myscript.php
*/10 * * * * /usr/bin/wget -q -O temp.txt http: //www.centos.bz/myscript.php
Utiliser PHP pour actualiser le navigateur nécessite de résoudre plusieurs problèmes
Solution :
ou modifier les paramètres PHP.ini.Heure (non recommandé) 30m
set_time_limit();
max_execution_time
2. Si le navigateur client est fermé, le programme peut être forcé de se terminer Solution :
Même si la page est fermée, il s'exécutera toujours. normalement
ignore_user_abort
3. Si le programme est exécuté tout le temps, il est susceptible de consommer beaucoup de ressources. La solution est d'utiliser
pour mettre le programme en veille pendant un certain temps, puis l'exécuter. le code d'exécution planifié PHP
sleep
Lors des tests, nous avons constaté que cette efficacité n'est pas très élevée
<?php ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行. set_time_limit(3000);// 通过set_time_limit(0)可以让程序无限制的执行下去 $interval=5;// 每隔5s运行 //方法1--死循环 do{ echo '测试'.time().'<br/>'; sleep($interval);// 等待5s }while(true); //方法2---sleep 定时执行 require_once './curlClass.php';//引入文件 $curl = new httpCurl();//实例化 $stime = $curl->getmicrotime(); for($i=0;$i<=10;$i++){ echo '测试'.time().'<br/>'; sleep($interval);// 等待5s } ob_flush(); flush(); $etime = $curl->getmicrotime(); echo '<hr>'; echo round(($etime-stime),4);//程序执行时间
Résumé :
Cet article est implémenté via des tâches planifiées Windows, des scripts Linux et des exemples d'exécution de tâches planifiées par PHP, afin que vos amis puissent comprendre plus directement les tâches d'exécution planifiées par PHP. J'espère qu'il vous sera utile !
Recommandations associées :
Analyse des principes de la mise en œuvre PHP des tâches planifiées
tâches planifiées PHP et processus continus (fsockopen) instance
tâche planifiée php Détecter l'état de connexion de l'utilisateur
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!