作者lausai (恨怨悲苦憎怒嗔)
看板PHP
标题Re: [请益] php执行时间过长如何跳掉?
时间Tue Oct 5 08:55:23 2010
※ 引述《high5566 (超high的5566)》之铭言:
: 上网找到有 set_time_limit(xx)限制程式执行时间
: 不过这个是跳到错误讯息强制停止
: 我现在需求是跑一个回圈,希望执行时间超过 n 秒後就不要再执行 继续往下走
: 因为有时中间有一段突然存取过久 或是外连断掉,就会导致整个程式卡住或当掉
: 或是 cron 跑的时候一段没跑完,下一段 cron 又开始了
: 请问这样该怎麽做 ?
: 感谢 !
试试看 用 fork 做?
//sample
$pid = pcntl_fork();
if ($pid == 0) {
// child process
// do the loop you want here
} else {
// parent process
// wait $n seconds
sleep($n);
// time out! kill the child process
$kill_succeed = posix_kill($pid, SIGKILL);
echo 'kill child process result: '.$kill_succeed."\n";
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.110.112.128
1F:推 high5566:感谢 ! 我试看看 本机好像执行没反应的样子 上网找资料 10/05 09:34