Laravel Excel Queue占用内存过多



我已经设置了Laravel队列,使用你的Laravel excel读取excel文件,它对小文件非常有效。

但是对于大文件(100+mb)和400k以上的记录,它花费了太多的时间,并且消耗了几乎40GB的服务器内存。

我已经设置了一个主管来运行queue: work命令。我的服务器内存是60GB。对于小文件,这一切都工作得很好,但对于大文件,它不工作。

我也用望远镜检查了查询时间,但没有查询时间太长。

在这一点上,你的问题没有直接的答案。这在很大程度上取决于你的目标结果。你必须设计出你的方式来。

在我的脑海中,有一件事是将你的大型excel文件分块或分区,并将它们提供给你的队列。也许你可以使用批量处理。

另一个你可以引入的是微服务系统,这些繁重的任务将由另一个更好的机器来完成。

但是就像我说的,对于这样的问题没有单一的解决方案。你必须自己计算并找到这些

对于所有面临此类问题的人,我建议使用Spout。这就像魅力一样。我为此尝试了3个PHP服务,最后,只有spout工作。

https://opensource.box.com/spout/

https://github.com/box/spout

最新更新