Die Laravel-Excel-Warteschlange verbraucht zu viel RAM
P粉884667022
P粉884667022 2024-03-21 19:11:50
0
2
404

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粉884667022
P粉884667022

Antworte allen(2)
P粉726234648

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

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

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

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

P粉455093123

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

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

https://github.com/box/spout

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage