为了账号安全,请及时绑定邮箱和手机立即绑定

有没有什么比较好的办法让他一边运行一边输出结果?

有没有什么比较好的办法让他一边运行一边输出结果?

PHP
精慕HU 2023-04-24 19:15:15
代码大概是这样的:    public function test(){        for ($i=0; $i < 90260; $i++) {              $a = findappbyid($i);            print_r($a);            print($i);         }     }大概查10个数据左右,就会出现:Fatal error: Maximum execution time of 30 seconds exceeded in xxxx有没有什么比较好的办法让他一边运行一边输出结果(现在是运行完一下子出现数据和上述错误),而不会出现因为运行时间过长产生错误呢?
查看完整描述

3 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

ob_end_flush();
ob_implicit_flush(true);for ($i=0; $i < 90260; $i++) { 
            $a = findappbyid($i);
            print_r($a);            print($i);
}
ob_end_flush();
ob_implicit_flush(false);


查看完整回答
反对 回复 2023-04-28
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

php的配置里默认的执行时间是30秒,30秒对于一般的也足够了。

你可以在你的程序里添加set_time_limit(3600)临时改变程序的执行时间。
或者ini_set("max_execution_time", "3600")

如果你的是本地测试的机器,也可以将php.ini中的max_execution_time = 30中的30改成3600,或者更大的数,然后重启服务。


查看完整回答
反对 回复 2023-04-28
?
Helenr

TA贡献1780条经验 获得超3个赞

可以建立一个阻塞队列,把循环的次数变成队列的长度,单次执行的放到队列的节点中去做

查看完整回答
反对 回复 2023-04-28
  • 3 回答
  • 0 关注
  • 86 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信