par
Saian » 22 mai 2019, 13:49
Salut, le traitement est trop lent, l'idée serait donc d'exécuter plusieurs scripts parallèlement qui feraient chacun une partie du traitement. Chacun générerait une partie des numéros. Une fois tous les scripts terminés, un dernier script s'occuperait de rassembler tous les numéros pour les envoyer au client.
Cela semble réalisable à base d'XHR, tu pourrais faire un premier call XHR sur un script qui déterminerait combien de scripts doivent être démarrés. Le script déterminerait combien de numéros vont devoir être créés et répartir leurs création par l'exécution de n scripts s'occupant chacun d'une plage de numéros. Les numéros pourraient être enregistrés dans des fichiers temporaires, 1 par script.
Lorsque tous les scripts auraient fini de s'exécuter, un dernier call XHR s'occuperait d'appeler un dernier script qui s'occuperait de fusionner les fichiers et de lancer le téléchargement du fichier final.
Je n'ai jamais fait ça, je n'ai donc aucune idée du gain que cela pourrait apporter, mais ça peut se tenter.
Par contre en recherchant php multithread, j'ai vu qu'il existe une librairie pthreads. J'aurai tendance à creuser de se côté pour réaliser cette tâche. Tout serait géré depuis un seul script au lieu de 3 et entièrement côté serveur alors que l'utilisation de XHR implique de développer une partie de la logique côté client et d'assurer la bonne communication entre le serveur et le client.
Salut, le traitement est trop lent, l'idée serait donc d'exécuter plusieurs scripts parallèlement qui feraient chacun une partie du traitement. Chacun générerait une partie des numéros. Une fois tous les scripts terminés, un dernier script s'occuperait de rassembler tous les numéros pour les envoyer au client.
Cela semble réalisable à base d'XHR, tu pourrais faire un premier call XHR sur un script qui déterminerait combien de scripts doivent être démarrés. Le script déterminerait combien de numéros vont devoir être créés et répartir leurs création par l'exécution de n scripts s'occupant chacun d'une plage de numéros. Les numéros pourraient être enregistrés dans des fichiers temporaires, 1 par script.
Lorsque tous les scripts auraient fini de s'exécuter, un dernier call XHR s'occuperait d'appeler un dernier script qui s'occuperait de fusionner les fichiers et de lancer le téléchargement du fichier final.
Je n'ai jamais fait ça, je n'ai donc aucune idée du gain que cela pourrait apporter, mais ça peut se tenter.
Par contre en recherchant php multithread, j'ai vu qu'il existe une librairie pthreads. J'aurai tendance à creuser de se côté pour réaliser cette tâche. Tout serait géré depuis un seul script au lieu de 3 et entièrement côté serveur alors que l'utilisation de XHR implique de développer une partie de la logique côté client et d'assurer la bonne communication entre le serveur et le client.