错误信息提示:
错误号:12142

错误原因:

错误SQL语句:
select * from user_skin where  find_in_set('sysai.net',replace(host,'|',','))

Warning: fopen(/error/2025-06-26.txt): failed to open stream: No such file or directory in /opt/lampp/htdocs/sysai/inc/datai.php on line 247
文件 2025-06-26.txt 不可写

sysai
『 자료실 』
현재위치 : HOME > 자료실
php 后台运行,php程序后台运行的实现方法
글쓴이 : 매니저 작성일 : 2022-04-05

网页上执行一个php,然后关闭页面,能否让该后台程序还是能运行,每个5秒发封邮件

可以,但是很危险

ignore_user_abort(true)

通过设置php的运行状态可以实现关闭浏览器后php程序继续运行所以说——可以

你需要“每个5秒发封邮件”,并没有说明程序是否会自行终止。如果程序一直运行的话,势必有一个死循环。并且这个程序无法通过php手段将其终止,除非重新启动web服务。这个程序每被执行一次,就将在系统中产生一个永久的进(线)程,势必将占用大量系统资源而导致系统因资源枯竭而崩溃,所以说 ——很危险

to   xuzuning(唠叨)   :

那么程序可以自己退出把自己杀死,比如我设置一个变量,变量递增,到发到100封邮件,变量=100,就退出(执行exit),这样行吗?

可以!

因为没有显示窗口的提示,调试时要格外小心

nohup   php   -q   文件名   &

不就在不挂起一直执行

程序要死循环就是一直执行了

感觉楼上们说的玄了。

可以关闭页面而继续执行程序。只要让程序不要有任何输出即可,另外要保证set_time_limit(0)。

至于中断,教楼主一个小技巧:在你的循环中进行一下是否存在一个文件(比如stop.txt)的检测,如果存在,就exit。这样你可以随时通过临时建一个文件,让它中断退出。

至于占用服务器资源,我想楼主肯定会先在自己电脑上测试吧。另外,即使放在服务器上这样运行,   唠叨老大说的“并且这个程序无法通过php手段将其终止”也是不完全的,我前面说的这个文件检测法就可以给死循环进行中断。

同意   zairwolf(君子兰)   的观点

页面打开与否与php有没有在运行毫无关系,可以这样认为,你打开一个页面,只是为了去触发这个页面的php脚本去执行,当然你也可以用其他的方法,file_get_contents   soap   都行,只要保证该脚本执行起来就可以了

脚本开始执行以后,你所“看到”的前台页关不关和程序运行不运行已经毫无关系了

非常感谢大家的指点。

又一个问题:

我在运行下面代码:

sleep.php

set_time_limit(0);

ignore_user_abort(true);

for   (   $i=0;$i <20;$i++){

///

处理发邮件事务

///

sleep(   5   );

}

exit;

?>

点击它,IE进度条会一直等待中,虽然页面关闭后程序会继续运行,但是会给人误解,有什么办法执行这个程序后立刻进入一个友好的界面,提示执行完毕.

목록


홈으로 | 이용안내 | 이용약관 | 개인정보보호정책 | 제휴문의 | 질문과답변 | 자주하는 질문
Copyright © 2011 - 2014 SYSAI Work Group, All Rights Reserved 주소:길림성연길시,우편:133300 Version 3.0 Run Time 0.226s