Home > Article > Backend Development > Sample code sharing for PHP scheduled tasks
We have previously introduced you to the principle of PHP scheduled tasks and the implementation of scheduled execution of scheduled tasks. Sometimes we need to process remote databases in projects. At this time we have to use PHP scheduled tasks. Today we will give you Introducing an example of processing PHP scheduled tasks!
This time using PHP to implement scheduled tasks mainly uses the three functions ignore_user_abort() set_time_limit(0) sleep().
Example
<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>
The specific code is as follows:
<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 int ignore_user_abort:
From the function name itself, it can be interpreted as, "Ignore the impact of the user "
Because the so-called user refers to the client, that is, the browser
, so it is further explained as, "Ignore the impact of the browser"
So what does the impact refer to, and the impact refers to the browser Closure and exception
That is to say, if the PHP program with this function is closed, even when the browser is closed, the program will continue to execute until it is finished.
For example Say, you have a piece of code that needs to be executed for 100 seconds, but this time is too long. Most users can't wait. After waiting for 60 seconds, they can't stand it and shut it down. If the program is terminated at this time, it may cause If the data is abnormal, inconsistent or wrong, you can use it if you need the program to continue running.
crontab filecrontab [ -u user ] [ -u user ] { -l | -r | -e }Instructions: Crontab is used to allow users to execute programs at fixed times or intervals.Use crontab to write shell scripts, and then let PHP call the shell. This takes advantage of the characteristics of Linux and should not be considered PHP's own language. Features
Executing scripts using 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>The following example uses 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>The following example uses WGET to access the URL to execute a PHP script every 10 minutes. The -q option indicates quiet mode. "-O temp.txt" means the output will be sent to a temporary file.
<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>
Summary:
This article is an example of PHP scheduled tasks implemented through the actual project development process, and it will have a certain impact on your development work. s help!Related recommendations:
The above is the detailed content of Sample code sharing for PHP scheduled tasks. For more information, please follow other related articles on the PHP Chinese website!