-
Fin anormale d'un script
Bonjour,
J'ai écrit un script de mise à jour d'une base de donnée qui prend en moyenne 2 à 3 minutes pour s'exécuter. (Hébergé sur un mutualisé d'OVH)
De temps à autre, le script s'arrête au beau milieu de l'exécution sans aucun message d'erreur ni retour http anormal. (Et l'endroit ou l'exécution s'arrête est aléatoire)
Quelques pistes :
- Il semblerait que le script s'arrête surtout lorsque je dispose de peu de bande passante sur le client. (Mais j'ai fait des tests à partir d'un serveur dédié d'OVH et il arrive que ça ne passe pas non plus)
- Pour des raisons de déboguage j'affiche la totalité des requêtes exécutées ce qui donne une page d'environ 1Mo pour une exécution complète
- En local je n'ai jamais rencontré ce problème
Une idée de ce qui peut provoquer ça ?
Merci d'avance.
-
Bonjour,
Si nous avions ton script, nous pourrions avoir quelques idées...
La première qui me vient à l'esprit serait que le temps de traitement est trop long pour le navigateur.
En fait, première et seule idée pour l'instant.
-
Bonjour, bonne année et merci pour ta réponse Deallyra.
Le script est extrêmement long ...
c'est une grande succession d'UPDATE et INSERT
et comme ça s'arrête aléatoirement (il arrive d'ailleurs souvent que ça ne s'arrête pas), je ne pense pas que ce soit une erreur de codage.
Le temps de traitement du navigateur ... oui, pourquoi pas. Je m'étais plus dit que ça venait du serveur. J'ai obtenu cette erreur avec IE, FF, et même wget.
De plus, quand je lance le script en local, le temps de traitement est beaucoup plus long et pourtant ça ne s'arrête jamais. :?
-
il est lancé comment ?
si il est lancer depuis un navigateur c'est normal qu'il s'arrête, surtout si ce script n'envoie pas de données à l'écran.
Au bout d'un certain temps que le navigateur mouline, sans rien renvoyé le serveur apache/navigateur coupe la connexion.
-
En effet cela arrive que lors de gros traitement sans affichage ca plante. Une solution est d'affiché un caractère quelconque de temps en temps (par exemple toutes les 100 requêtes) en utilisant ob_start et ob-end-flush
-
Bonjour et merci de vos réponses.
Le script est lancé depuis wget, je n'ai pas encore trouvé l'option qui éviterait la coupure de connexion.
Bebel > J'affiche chaque requête à l'écran dc j'envoie des données très régulièrement à l'écran.
Je n'ai pas compris l'avantage d'ob_start et ob_end_flush par rapport à un bête echo ...
-
Le problème semble résolu. J'ai simplement rajouté des "echo" supplémentaires entre chaque requête.
Merci à tous.