Heim > Artikel > Backend-Entwicklung > Beispielcode-Freigabe für geplante PHP-Aufgaben
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 }Anweisungen: Crontab wird verwendet, um Benutzern die Ausführung von Programmen zu einem festen Zeitpunkt oder in einem festen Intervall zu ermöglichen.Verwenden Sie Crontab, um Shell-Skripte zu schreiben, und lassen Sie PHP dann die Shell aufrufen. Dies nutzt die Eigenschaften von Linux und sollte PHP selbst nicht zählen . Funktionen der Sprache
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>Das folgende Beispiel verwendet C
<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>Das folgende Beispiel verwendet WGET, um auf die URL zuzugreifen, um alle 10 Minuten ein PHP-Skript auszuführen. Die Option -q gibt den Ruhemodus an. „-O temp.txt“ bedeutet, dass die Ausgabe an eine temporäre Datei gesendet wird.
<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!