La file d'attente Laravel Excel consomme trop de RAM
P粉884667022
P粉884667022 2024-03-21 19:11:50
0
2
403

J'ai configuré la file d'attente Laravel pour lire les fichiers Excel à l'aide de votre Laravel Excel et cela fonctionne très bien pour les petits fichiers.

Mais pour les fichiers volumineux (100+ Mo) et plus de 400 000 enregistrements, cela prend trop de temps et consomme près de 40 Go de RAM du serveur.

J'ai mis en place un superviseur pour exécuter les commandes queue:work. La mémoire de mon serveur est de 60 Go. Pour les petits fichiers, tout fonctionne bien, mais pour les gros fichiers, cela ne fonctionne pas.

J'ai également vérifié les temps de requête à l'aide d'un télescope mais aucune requête n'a pris très longtemps.

P粉884667022
P粉884667022

répondre à tous(2)
P粉726234648

Actuellement, il n’y a pas de réponse directe à votre question. Beaucoup dépend de vos résultats cibles. Vous devez trouver votre propre façon de le résoudre.

L'une de mes plus grandes préoccupations est de diviser ou de partitionner de gros fichiers Excel et de les mettre dans une file d'attente. Peut-être pouvez-vous profiter du traitement par lots de tâches Laravel.

Une autre chose que vous pouvez introduire est un système de microservices dans lequel ces tâches lourdes seront effectuées par une autre machine meilleure.

Mais comme je l’ai dit, il n’existe pas de solution unique à un problème comme celui-ci. Vous devez découvrir cela vous-même.

P粉455093123

Pour toutes les personnes confrontées à ce genre de problème, je recommande d'utiliser Spout. Il fonctionne comme un charme. J'ai essayé 3 services PHP pour cela et au final, seul le bec a fonctionné.

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

https://github.com/box/spout

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal