Heim  >  Fragen und Antworten  >  Hauptteil

Die Laravel-Excel-Warteschlange verbraucht zu viel RAM

Ich habe die Laravel-Warteschlange eingerichtet, um Excel-Dateien mit Ihrem Laravel-Excel zu lesen, und sie funktioniert hervorragend für kleine Dateien.

Aber für große Dateien (100+ MB) und mehr als 400.000 Datensätze dauert es zu lange und verbraucht fast 40 GB RAM des Servers.

Ich habe einen Supervisor eingerichtet, der queue:work-Befehle ausführt. Mein Serverspeicher beträgt 60 GB. Bei kleinen Dateien funktioniert alles einwandfrei, bei großen Dateien jedoch nicht.

Ich habe die Abfragezeiten auch mit dem Teleskop überprüft, aber keine Abfrage hat sehr lange gedauert.

P粉884667022P粉884667022235 Tage vor351

Antworte allen(2)Ich werde antworten

  • P粉726234648

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

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

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

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

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

    Antwort
    0
  • P粉455093123

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

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

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

    https://github.com/box/spout

    Antwort
    0
  • StornierenAntwort