Mysql 拉威尔超时
因此,我必须读取一个excel文件,其中每一行都包含一些我想在数据库中写入的数据。我将整个文件传递给laravel,它读取文件并将其格式化为数组,然后在数据库中进行新的插入(或更新)。 问题是,输入的excel文件可能包含数千行,需要一段时间才能完成,在某些情况下会出现超时错误。 当我尝试在本地进行此操作时,我使用Mysql 拉威尔超时,mysql,excel,laravel,timeout,Mysql,Excel,Laravel,Timeout,因此,我必须读取一个excel文件,其中每一行都包含一些我想在数据库中写入的数据。我将整个文件传递给laravel,它读取文件并将其格式化为数组,然后在数据库中进行新的插入(或更新)。 问题是,输入的excel文件可能包含数千行,需要一段时间才能完成,在某些情况下会出现超时错误。 当我尝试在本地进行此操作时,我使用set\u time\u limit(0)函数,这样超时就不会发生,而且工作得很好。但在远程服务器中,出于安全原因,此功能被禁用,并且我的代码因超时而崩溃。 有人能帮忙解决这个问题吗?
set\u time\u limit(0)代码>函数,这样超时就不会发生,而且工作得很好。但在远程服务器中,出于安全原因,此功能被禁用,并且我的代码因超时而崩溃。
有人能帮忙解决这个问题吗?也许是关于如何更好地解决这个问题的另一个想法?处理耗时较长的任务的一个好方法是利用所谓的
当有人向您发送文件时,您可以创建一个名为ImportExcel
和dispatch
的作业
请仔细查看,他们提供了一些关于如何执行此操作的很好的示例。您可以使用以下步骤处理此问题:
1。获取csv文件并将其临时存储在存储器中:
用户上传时,您可以存储大的csv。如果它不是从前端上传的,只需确保您已将其保存以供下一步处理
2。然后分派一个可以排队的队列:
您可以创建一个可以异步处理此问题的作业。您可以使用来管理队列和超时等
3。使用如下软件包:
使用此软件包(或类似软件包),您可以分块记录或一次读取一条记录。将内存使用限制在一定范围内确实很有帮助。此外,它还有不同的方法选项可用于从文件中读取数据
4。处理完文件后,您可以将其从临时存储器中删除:
只是一些拆卸清理活动。我正在尝试这样做,但仍然有同样的问题。我不知道我做错了什么,但laravel似乎仍然在阻止我的应用程序。PHP中定义的最大执行时间是多少?