PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > fr.comp.lang.php > probleme d'arret soudain de scri pt en tache cron
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
probleme d'arret soudain de scri pt en tache cron

Réponse
 
LinkBack Outils de la discussion
Vieux 03/10/2007, 13h18   #1 (permalink)
david
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut probleme d'arret soudain de scri pt en tache cron

Bonjour,

J'exécute des scripts par des tâches cron sous Debian avec un serveur
Apache2 et ceux ci de façon aléatoire parfois se terminent correctement,
parfois voient leur processus disparaitre complètement alors que le
traitement n'est pas terminé.
Lors de ces arrêts soudains je n'obtiens aucune erreur dans le fichier
de log que j'ai mis en place et qui fonctionne correctement, log que
j'obtiens par le symbole chevron, donc tout erreur affichée doit y être,
et certaines y sont d'ailleurs mais ne correspondent pas à mon problème.
Mon script contient un set_time_limit(0) étant donné que certaines
tâches peuvent durer plus d'une heure, de plus j'ai rajouté
l'instruction @ini_set('memory_limit','3000M') car nous traitons de
gros fichiers pouvant occuper de la place en mémoire.

Je ne vois donc pas ce qui pourrait provoquer ce qui ressemble pourtant
à un timeout de ces scripts, d'autant que la plupart du temps si je les
relance ils finissent par se terminer en allant jusqu'à la fin du script.


Merci d'avance pour votre aide.
  Réponse avec citation
Vieux 03/10/2007, 19h21   #2 (permalink)
Thibault Taillandier
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: probleme d'arret soudain de scri pt en tache cron

Bonjour,

Tu dis extraire la sortie des log avec >
Ceci ne récupère à priori que la sortie standard STDOUT, et pas la
sortie erreur STDERR.
Il vaudrait mieux utiliser :
$ php script.php 1>&2 > /var/log/monfichier.log

Encore faut-il que les erreurs soient bien affichées, pour t'en assurer
je te conseille la manière forte dans un premier temps, histoire de
diagnostiquer le pb :
ini_set('log_errors',1);
ini_set('display_errors',1);
error_reporting(E_ALL);

Mieux encore, il vaudrait mieux utiliser le système de log de php :
utiliser la fonction error_log('Il se passe ceci'); dans ton script,
pour suivre le bon déroulement des actions.

Bon courage,


david a écrit :
> Bonjour,
>
> J'exécute des scripts par des tâches cron sous Debian avec un serveur
> Apache2 et ceux ci de façon aléatoire parfois se terminent correctement,
> parfois voient leur processus disparaitre complètement alors que le
> traitement n'est pas terminé.
> Lors de ces arrêts soudains je n'obtiens aucune erreur dans le fichier
> de log que j'ai mis en place et qui fonctionne correctement, log que
> j'obtiens par le symbole chevron, donc tout erreur affichée doit y être,
> et certaines y sont d'ailleurs mais ne correspondent pas à mon problème.
> Mon script contient un set_time_limit(0) étant donné que certaines
> tâches peuvent durer plus d'une heure, de plus j'ai rajouté
> l'instruction @ini_set('memory_limit','3000M') car nous traitons de
> gros fichiers pouvant occuper de la place en mémoire.
>
> Je ne vois donc pas ce qui pourrait provoquer ce qui ressemble pourtant
> à un timeout de ces scripts, d'autant que la plupart du temps si je les
> relance ils finissent par se terminer en allant jusqu'à la fin du script.
>
>
> Merci d'avance pour votre aide.


--
Thibault Taillandier
  Réponse avec citation
Vieux 04/10/2007, 00h12   #3 (permalink)
Olivier Miakinen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: probleme d'arret soudain de scri pt en tache cron

Le 03/10/2007 20:21, Thibault Taillandier a écrit :
>
> Tu dis extraire la sortie des log avec >
> Ceci ne récupère à priori que la sortie standard STDOUT, et pas la
> sortie erreur STDERR.


Exact.

> Il vaudrait mieux utiliser :
> $ php script.php 1>&2 > /var/log/monfichier.log


Euh... non. C'est le flux 2 qu'il faut rediriger vers le 1, et seulement
après avoir branché stdout sur le fichier de log. Donc :
$ php script.php >/var/log/monfichier.log 2>&1
  Réponse avec citation
Vieux 08/10/2007, 15h25   #4 (permalink)
John GALLET
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: probleme d'arret soudain de scri pt en tache cron

Bonjour,

> J'exécute des scripts par des tâches cron sous Debian avec un serveur
> Apache2

Je ne vois pas ce qu'apache vient faire là dedans. Quelle est la ligne
de commande appelée en crontab ? Un wget ?

a++;
JG
  Réponse avec citation
Vieux 09/10/2007, 11h07   #5 (permalink)
Paul
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: probleme d'arret soudain de scri pt en tache cron

John GALLET a écrit :
> Bonjour,
>
>> J'exécute des scripts par des tâches cron sous Debian avec un serveur
>> Apache2

> Je ne vois pas ce qu'apache vient faire là dedans. Quelle est la ligne
> de commande appelée en crontab ? Un wget ?

Arrete moi si je déconnes mais n'est ce pas l'instance Apache qui répond
au navigateur qui s'arrête trop tôt ?
>
> a++;
> JG

  Réponse avec citation
Vieux 09/10/2007, 22h32   #6 (permalink)
John GALLET
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: probleme d'arret soudain de scri pt en tache cron

Bonjour,

> >> J'exécute des scripts par des tâches cron sous Debian avec un serveur
> >> Apache2

> > Je ne vois pas ce qu'apache vient faire là dedans. Quelle est la ligne
> > de commande appelée en crontab ? Un wget ?

> Arrete moi si je déconnes mais n'est ce pas l'instance Apache qui répond
> au navigateur qui s'arrête trop tôt ?


Ca dépend, d'où ma question. Je rappelle que PHP peut fonctionner en TROIS
modes MUTUELLEMENT EXCLUSIFS pour lequel UN SEUL parle à un serveur web:

1) requête HTTP, par exemple par un navigateur ou un wget en crontab. Là,
il faut un serveur web et donc son time_out va jouer.

2) mode CLI (Command Line Interface). Pas de serveur web, pas de time_out
gérer de la même manière.
Cf http://fr2.php.net/manual/en/features.commandline.php
C'est en particulier le cas où on appelle en crontab une
ligne du genre :

/usr/local/php -f toto.php >& a.log

NB: je perturbe volontairement mes camarades sur la redirection du canal
STDERR, ceci est la syntaxe du csh ;-)

3) php-gtk (comparable dans son fonctionnement à java+awt)

a++;
JG
  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 11h10.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,12620 seconds with 14 queries