Maison  >  Questions et réponses  >  le corps du texte

La file d'attente Laravel Excel consomme trop de RAM

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粉884667022P粉884667022185 Il y a quelques jours313

répondre à tous(2)je répondrai

  • P粉726234648

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

    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.

    répondre
    0
  • P粉455093123

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

    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

    répondre
    0
  • Annulerrépondre