PHP:当循环很长的函数没有响应时退出并显示警报

标签 php mysql timeout

我有一个大函数(1300 多行代码),它从网络获取数据并将其插入本地数据库。每次该函数运行大约需要 20 秒才能完成,我需要运行该函数一百万次,因此我使用 set_time_limit(0) 将 PHP 时间限制设置为无限,然后循环该函数一百万次,例如这个:

for ($ID= '01'; $ID < '999999'; $ID++) {
    getDataFromWeb($conn, $ID);
}

那么问题出在哪里呢?问题是有一百万个地方可能会出错,而且总是会出错,例如,代码突然卡在 ID 23465 中,它只是停止获取数据,但我没有收到任何类型的错误,它就像循环继续但没有向数据库插入任何内容一样,并且由于我为 PHP 设置了“无时间限制”,因此它永远不会停止。

我想知道如何检测此类问题、停止所有问题并显示警报。如果我在函数开始之前设置时间,然后在函数结束时检查它,如下所示:

for ($ID= '01'; $ID < '999999'; $ID++) {
    $time_start = microtime();
    getDataFromWeb($conn, $ID);
    $time_end = microtime();
    if ($time_alert - //... somehow check how time does it takes and stop if its taking too much
}

它不会工作,因为如果函数永远不会完成,那么 $time_end 将永远不会被设置等等......

那么,请帮忙?

最佳答案

关于PHP:当循环很长的函数没有响应时退出并显示警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3245743/

相关文章:

php - 如果数据在页面上未对齐,则无法使用循环回显表行

MySQL连接查询,搞不懂

php - 选择数据库列中的值数

python - 处理python中的telnetlib超时错误

node.js - 使用 Node.js 流管道进行超时处理

mySQL脚本超时

php - 不重复的随机链接 - 用户 session

c# - 什么是 C# 等同于 preg_match_all?

php - 我在以下 php 代码中遇到搜索错误

php - 使用 php 使用表单将记录添加到数据库