Home  >  Article  >  Backend Development  >  Sample code sharing for PHP scheduled tasks

Sample code sharing for PHP scheduled tasks

黄舟
黄舟Original
2018-05-15 14:23:132394browse

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(&#39;copy1032&#39;)">复制代码</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(&#39;test.txt&#39;,&#39;a&#39;); 
fwrite($fp,&#39;test&#39;); 
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(&#39;copy7070&#39;)">复制代码</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 &#39;测试&#39;.time().&#39;<br/>&#39;; 
 sleep($interval);// 等待5s    
}while(true);
//方法2---sleep 定时执行
require_once &#39;./curlClass.php&#39;;//引入文件
$curl=new httpCurl(&#39;www.phpernote.com&#39;);//实例化
$stime=$curl->getmicrotime();
for($i=0;$i<=10;$i ){
 echo &#39;测试&#39;.time().&#39;<br/>&#39;; 
 sleep($interval);// 等待5s
}
ob_flush();
flush();
$etime=$curl->getmicrotime();
echo &#39;<hr>&#39;;
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.

Its parameters are true and false, true means ignored, false means not ignored

In specific During the implementation process, I personally feel that the efficiency of PHP's scheduled task execution is not high. It is recommended that the work of scheduled task execution be left to the shell. Relatively speaking, this method is too reluctant to implement, and the shell is a professional level.

2. Linux script program

The crontab command is mainly used here,

Usage method:

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

If your PHP scripts can be triggered via URLs, you can use lynx or curl or wget to configure your Crontab.

The following example uses a Lynx text browser to access a URL to execute a PHP script every hour. Lynx text browser uses conversational mode to open URLs by default. However, as shown below, we use the -dump option on the lynx command line to convert the URL output to standard output.

<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(&#39;copy7213&#39;)">复制代码</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

URL to access the URL to execute a PHP script every 5 minutes. Curl displays output on standard output by default. You can also dump the script's output to a temporary file using the "curl -o" option.

<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(&#39;copy6465&#39;)">复制代码</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(&#39;copy1200&#39;)">复制代码</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:

How to implement scheduled execution of scheduled tasks in php?


Principle Analysis of Implementing Planned Tasks


php implements scheduled tasks and continuous process instances fsockopen


##php Scheduled tasks Detect user connection status

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn