PHP定时任务延缓执行的实现,php延缓_PHP教程
PHP定时任务延缓执行的实现,php延缓
/*
|---------------------------
|PHP定时任务
|@黑眼诗人
|---------------------------
*/
ignore_user_abort(true); //客户端断开时忽略脚本中止(允许脚本一直执行)
set_time_limit(0); //设置脚本最长执行时间,0不限制
do{
$fp = fopen('auto.txt', 'w');
if($fp)
{
$text = '你好\n\r';
$count = 0;
for($i=1; $i
{
if(! $c = fwrite($fp, '第'.$i.'行:'.$text)) //返回写入字符数,失败时返回false
{
echo '第'.$i.'次的写入失败!';
}
$count += $i;
}
}
fclose($fp);
sleep(60); //延缓60秒执行
}while(true);
如果要用PHP文件的话,勉强可以做到
php里有一个sleep函数,具体使用是sleep(time)这里的time是以秒为单位
首先,建立php脚本
while(1){
//yourcode
sleep(3600*24);
}
?>
这里的yourcode就是你要PHP脚本执行的功能,虽然能达到这个目的,但是也有牺牲,你要在早上8点的时候通过URL访问这个脚本,也就是说执行PHP文件,并且,这个链接不能中断,要一直持续!!不然就无效了
PHP是单请求单执行,要有请求才执行的。
php是需要触发执行的, 没办法长期保持执行着它, 即便你用sleep, 它仍然是需要你首先去点它一次, 它才会一直存在
方法是用计划任务, 没错就是计划任务, 无论windows/*nix都有计划任务, 你可以把php放进计划任务里, 用命令行方式执行php程序
事实上没有任何可能性在0访问的情况下让php执行, 因为php自身就是服务器端脚本解释工具, 服务器当然是有人访问才工作才对, 楼主在反其道而行, 如果你希望用php执行桌面程序, 也不是没有办法,php官方就有这种工具, 但是和php的运行方式有太多不同,所以控制方式也都不同,严格的说,只是php的语法而已
对于提问者补充的补充:
ignore_user_abort(1);
set_time_limit(0);楼主要研究下这两个
上一篇: 改版成客户端蛮难的,展示小弟我的成果