首页  >  问答  >  正文

Laravel Excel 队列消耗过多 RAM

我已经设置了 Laravel 队列来使用您的 Laravel excel 读取 excel 文件,它非常适合小文件。

但是对于大文件(100+mb)和400k+记录,需要花费太多时间并且消耗服务器的近40GB RAM。

我已经设置了一个主管来运行队列:工作命令。我的服务器内存是 60GB。 对于小文件,一切正常,但对于大文件则不起作用。

我还使用望远镜检查了查询时间,但没有查询花费很长时间。

P粉884667022P粉884667022235 天前350

全部回复(2)我来回复

  • P粉726234648

    P粉7262346482024-03-22 16:23:26

    目前,您的问题还没有直接的答案。这很大程度上取决于您的目标结果。您必须设计自己的方法来解决它。

    我最关心的一件事就是对大型 excel 文件进行分块或分区,并将它们送入队列。也许你可以利用 Laravel 作业批处理。

    您可以引入的另一件事是微服务系统,其中这些繁重的任务将由另一台更好的机器来完成。

    但是就像我说的,对于这样的问题没有单一的解决方案。这些都得你自己计算找出来。

    回复
    0
  • P粉455093123

    P粉4550931232024-03-22 10:38:32

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

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

    https://github.com/box/spout

    回复
    0
  • 取消回复