如果超过预期时间,如何退出功能

时间:2011-04-17 04:33:38

标签: php function timer

我必须调用此函数

$rep_id=$this->getit($domain);

但是如果花费很长时间,某些域需要2/3分钟我想下一步。我设置了set_time_limit(3000);在php页面的开头

2 个答案:

答案 0 :(得分:0)

set_time_limit()将不起作用,因为它设置整个脚本的时间。我不确定这是否真的可以用PHP,但你可以用分叉拉它。我正在考虑启动计时器(使用time()作为时间戳)并循环直到达到X时间,同时将$ this-> geitit()作为子进程分叉。然后当计时器用完时,终止子进程。可能会工作,但不知道。

我想也许另一种方法是使用set_time_limit()使其成为具有指定超时的单独脚本,然后使用exec()

从主脚本调用它

答案 1 :(得分:0)

假设对getit()的调用是在主线程中(即没有在新线程中生成),执行它可能会阻止脚本的其余部分。但是,如果getit()具有自己的计时器,则可以将其设计为在达到执行限制时转储,并返回指示问题的错误代码。如果您决定启动此更改,请考虑添加可选参数以指定通话时限。