首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP和TOO_MANY_REDIRECTS

PHP和TOO_MANY_REDIRECTS
EN

Stack Overflow用户
提问于 2021-02-04 14:23:50
回答 1查看 58关注 0票数 0

情况如下;

我在php上运行了一个导入程序(基本上,您可以认为它是一个很大的while循环)。但是,由于有大量的数据(需要导入的数据小时);我不能在一个请求中做到这一点,否则我将在10分钟后接受php超时错误。

为了避免超时问题,我决定将我的导入减少到很多部分。基本上.我再次调用相同的url,但是每5分钟就会增加1000个参数。

这也是一些重定向之后的working...but .我接受了太多的重定向错误。

这个问题是标签铬,但如果你有一个其他浏览器的解决方案,我认为它。

我的问题是:,我有办法在铬上增加可以允许的重定向的数量吗?

或者可能是修复方法是临时从php中删除超时?我很想知道最好的解决方案是什么。怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-04 14:46:39

首先,我不建议进入这些重定向。最好是设置:

代码语言:javascript
复制
max_execution_time = 0

您不必为所有PHP更改此设置,您可以在导入脚本中设置它。

您是否有可能更改导入的源文件?

最好将这个文件分解成更小的文件,而不是使用任何消息代理(例如。RabbitMQ)将您的文件逐个排队以导入脚本。

如果您无法更改源文件,因为它来自外部源,则可以在脚本中按您自己的方式对其进行分块。Thant尝试将这些块排队,并使用CRON作业或类似的东西一个接一个地导入。

这次进口期间发生了什么事?也许你在进口的时候做的太多了?

编辑2022-06

我只是好奇,人们是否在使用产生,而不是在导入过程中返回从文件中读取的全部数据。为了节省服务器内存,强烈建议这样做。它可以用来:

代码语言:javascript
复制
public function readFile(string $filePath): iterable
{
    $file = new SplFileObject($filePath);
    ...
    while (!$file->eof()) {
        $row = ...
        ...
        yield $row;
    }
}

在这里使用产生语句可以节省大量内存(特别是在加载大文件时),并使处理海量数据成为可能。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66047564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档