Heim  >  Artikel  >  Backend-Entwicklung  >  PHP5计划任务离线功能的原理_PHP教程

PHP5计划任务离线功能的原理_PHP教程

WBOY
WBOYOriginal
2016-07-13 17:42:431024Durchsuche

为了定时更新某一文件,需要程序自动运行,从网上搜到了两种方法:ignore_user_abort() 和crontab
 
ignore_user_abort()函数搭配set_time_limit(0)和sleep($interval)即可实现程序自动运行更新,下面是一个实例
 
 
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);
?>
 
只要运行上面的页面,然后关掉,程序就会一直运行下去。
 
 
Linux 下有种更简单的方法,就是crontab命令
 
crontab命令的功能是在一定的时间间隔调度一些命令的执行。
 
crontab 使用方法: crontab [ -e | -l | -r ] 文件名 -e:编辑任务 -l:显示任务信息 -r:删除定时执行任务信息 
 
crontab的格式:
*  *   *  *  *  Command
分 时 日 月 星期 要运行的命令
 
crontab的例子:
 
*/5 * * * *  lynx http://www.BkJia.com
每5分钟访问一次 www.2cto.com
 
0 8 * * *  lynx http://www.BkJia.com
每天早上8点访问 www.2cto.com
 
0 10 6 * 1-5 lynx http://www.BkJia.com
每个月的6号和每个礼拜的星期一到星期五的早上10点访问 www.2cto.com
 
0 5 7 8 * lynx http://www.BkJia.com
8月7日早上5点访问 www.2cto.com
 
上面几个特殊的意思:
"*"代表所有的取值范围内的数字,"/"代表每的意思,"*/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/486034.htmlTechArticle为了定时更新某一文件,需要程序自动运行,从网上搜到了两种方法:ignore_user_abort() 和crontab ignore_user_abort()函数搭配set_time_limit(0)和sleep...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn