tinio Posté 26 Mai 2008 Posté 26 Mai 2008 Bonjour, J'ai fait un script PHP pour archiver différents flux RSS, tous les jours. Jusque là tout va bien. Le problème c'est que certaine URL semblent être un peu longues à répondre et d'autres ne répondent pas du tout. Je rencontre donc fréquemment l'erreur: "Fatal error: Maximum execution time of 30 seconds exceeded..." Je me suis renseigné sur l'allongement du délais (set_time_limit()) mais j'aimerai pouvoir passer outre cette erreur afin que si l'adresse n'est plus valide ou autres raisons, je puisse poursuivre l'exécution du script et archiver les flux suivants. Auriez-vous une solution à me proposer ? Antoine
KnockedMaster Posté 26 Mai 2008 Posté 26 Mai 2008 (modifié) Salut, Si tu es en local ou en ligne sur un serveur dédié, tu peux modifier cette directive dans le fichier php.ini. Il suffit d'ouvrir le fichier, de faire un ctrl+f pour faire une recherche sur 'max_execution_time' et de passer ce paramètre aux valeurs que tu veux (par défaut 30). Mais bon, c'est un peu l'arbre qui cache la forêt. Modifié 26 Mai 2008 par KnockedMaster
Prélude Posté 26 Mai 2008 Posté 26 Mai 2008 Bonjour, Tu peux également passer par l'éxécutable PHP (si serveur dédié). Une autre solution, si tu passes par un navigateur, consiste à ne faire qu'une demande à la fois et de faire un "refresh" de la page (en javascript, en redirection...) avec en paramètre là où tu en es dans le traitement par exemple.
Kioob Posté 26 Mai 2008 Posté 26 Mai 2008 Hello, tu peux également modifier ton traitement afin qu'il gère correctement un timeout, et/ou qu'il gère plusieurs accès réseau simultanément. Mais comme indiqué par Prélude, en passant par la version "CLI" de PHP (via un cron par exemple) tu n'auras pas de soucis de time_limit.
tinio Posté 26 Mai 2008 Auteur Posté 26 Mai 2008 merci pour vos réponses. Finalement j'ai rallonger un peu le set_time_limit() et ca se passe bien
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant