Bonjour,
Plusieurs questions m'amènent à demander vos avis ici:
Imaginons que j'ai stocké ds une BD plusieurs milliers d'adresse d'image que je dois télécharger, redimensionner, modifier, puis finalement sauvegarder et uploader via des APIs.
J'imagine que le temps d'éxécution depassera facilement les 30 voir 60 secondes de bases de "max_execution_time" .
1) Concernant l'optimisation et la manière de faire, avez-vous un avis sur la question (sans multi-threads pour cause php) ?
2) Même en supposant que vous m'ayez donné la meilleure réponse, je pense que le le temps d'exécution dépassera 60s... Cela peut ne pas être un problème si je modifie cette valeur ds php.ini, quoique la documentation indique :
"Votre serveur web peut avoir d'autres configurations de la durée limite d'exécution qui peuvent également interrompre PHP. Apache a une directive Timeout et IIS a une fonction CGI pour cela. Par défaut, elles valent toutes les deux 300 secondes. Reportez-vous à la documentation de votre serveur web pour plus de détails. "
Personnellement, j'ai testé en local sur WAMP en modifiant uniquement PHP.ini et certains script durant 20min fonctionnent parfaitement.
Sachant que c'est pour une application en ligne, est-il possible de modifier ces paramètres sur certaines offres de "semi-dédié" ? Si oui, pouvez vous m'indiquer quels hébergeurs le proposent ? ( OVH, hosteur.com, ...)
3) Admettons que cette action (télécharger et traiter les images) soit déclenchée par l'utilisateur, je le vois mal patienter pendant le temps de traitement. Comment faire pour laisser l'utilisateur naviguer sur le site pendant que le script continue à tourner ?
Est-ce que l'utilisation de sleep() et de "daemons" (je ne sais pas encore ce que c'est) est une bonne piste ?
Ou utiliser de l'ajax pour le coté asynchrone ? (permet d'appeler le script sans que la navigation soit bloquée)
Merci d'avance pour vos réponses que j'espère précises et exhaustives
Partager