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.
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.
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