Wir haben Ihnen zuvor das Prinzip der geplanten PHP-Aufgaben sowie die Implementierung der geplanten Ausführung geplanter Aufgaben vorgestellt. Manchmal müssen wir in Projekten Remote-Datenbanken verarbeiten, dann müssen wir dies tun Wir stellen sie Ihnen vor. Wir stellen Ihnen ein Beispiel für die Verarbeitung geplanter PHP-Aufgaben vor!
Dieses Mal werden bei der Verwendung von PHP zum Implementieren geplanter Aufgaben hauptsächlich die drei Funktionen „ignore_user_abort()“ set_time_limit(0) „sleep()“ verwendet.
Beispiel
<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy1032')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy1032> <?php ignore_user_abort(); //即使Client断开(如关掉浏览器),PHP脚本也可以继续执行. set_time_limit(0); // 执行时间为无限制,php默认的执行时间是30秒,通过set_time_limit(0)可以让程序无限制的执行下去 $interval=60*5; // 每隔5分钟运行 do{ $fp = fopen('test.txt','a'); fwrite($fp,'test'); fclose($fp); sleep($interval); // 等待5分钟 }while(true); ?> </td> </tr> </table>
Der spezifische Code lautet wie folgt:
<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy7070')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy7070> <?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('www.phpernote.com');//实例化 $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);//程序执行时间 </td> </tr> </table>
Function intignore_user_abort:
Aus dem Funktionsnamen selbst geht hervor, dass dies möglich ist interpretiert werden als „Ignorieren Sie die Auswirkungen des Benutzers“
Da sich der sogenannte Benutzer auf den Client bezieht, dh den Browser
, wird dies weiter als „Ignorieren Sie die Auswirkungen des Browsers“ interpretiert.
Worauf bezieht sich die Auswirkung? Worauf bezieht sich die Auswirkung? Was passiert, wenn der Browser geschlossen wird?
Das heißt, das PHP-Programm mit dieser Funktion, Selbst wenn der Browser geschlossen ist, wird das Programm so lange ausgeführt, bis es fertig ist
Sie haben beispielsweise einen Code, der 100 Sekunden lang ausgeführt werden muss, aber diese Zeit ist für die meisten Benutzer zu lang Nach 60 Sekunden können sie es nicht ertragen und schließen. Wenn das Programm zu diesem Zeitpunkt beendet wird, kann es zu Datenanomalien, Inkonsistenzen oder Fehlern kommen Um die Ausführung fortzusetzen, können Sie es verwenden
crontab filecrontab [ -u user ] [ -u user ] { -l | -r | -e }
Ausführen von Skripten mithilfe von URLs in Crontab
<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy7213')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy7213> 00 * * * * lynx -dump http://www.111cn.net /script.php </td> </tr> </table>
<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy6465')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy6465> */5 * * * * /usr/bin/curl -o temp.txt http://www.111cn.net /script.php</td> </tr> </table>
<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy1200')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy1200> */10 * * * * /usr/bin/wget -q -O temp.txt http://www.111cn.net /script.php </td> </tr> </table></td> </tr> </table>
Zusammenfassung:
Dieser Artikel ist ein Beispiel für PHP-Planungsaufgaben, die im Rahmen des tatsächlichen Projektentwicklungsprozesses implementiert werden Ihre Entwicklungsarbeit Es gibt etwas Hilfe!Verwandte Empfehlungen:
Das obige ist der detaillierte Inhalt vonBeispielcode-Freigabe für geplante PHP-Aufgaben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!