Aller au contenu

Maximum execution time: passer outre


Sujets conseillés

Posté

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

Posté (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é par KnockedMaster
Posté

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.

Posté

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.

Posté

merci pour vos réponses.

Finalement j'ai rallonger un peu le set_time_limit() et ca se passe bien

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...