Creation d'un thread dans django, comment récuperer les erreurs
2 réponses
octobre
Bonjour,
Pour une tache couteuse en ressources, je cr=E9e un thread s=E9par=E9 lors
de la requ=EAte et ensuite je le surveille depuis la premi=E8re requ=EAte.
Parfois le thread ne fonctionne pas (erreur). Comment puis je
rediriger la sortie erreur de mon thread vers un fichier ? merci !
t =3D threading.Thread(target=3Dsender_thread,
args=3D[])
t.start()
def sender_thread():
# ici le catch des erreurs dans un fichier
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Alex Marandon
octobre wrote:
Pour une tache couteuse en ressources, je crée un thread séparé lors de la requête et ensuite je le surveille depuis la première requête. Parfois le thread ne fonctionne pas (erreur). Comment puis je rediriger la sortie erreur de mon thread vers un fichier ? merci !
Bonjour,
Les erreurs sont envoyées à l'objet sys.stderr. Tu peux le remplacer par l'objet de ton choix. Cet objet devra implémenter une méthode write. Coup de chance : les objets fichier propose une telle méthode.
Exemple:
$ python -c "import sys; sys.stderr = open('mes_erreurs','a'); 1/0" $ cat mes_erreurs Traceback (most recent call last): File "<string>", line 1, in <module> ZeroDivisionError: integer division or modulo by zero
J'espère que cela réponds à ta question.
octobre wrote:
Pour une tache couteuse en ressources, je crée un thread séparé lors
de la requête et ensuite je le surveille depuis la première requête.
Parfois le thread ne fonctionne pas (erreur). Comment puis je
rediriger la sortie erreur de mon thread vers un fichier ? merci !
Bonjour,
Les erreurs sont envoyées à l'objet sys.stderr. Tu peux le remplacer par
l'objet de ton choix. Cet objet devra implémenter une méthode write.
Coup de chance : les objets fichier propose une telle méthode.
Exemple:
$ python -c "import sys; sys.stderr = open('mes_erreurs','a'); 1/0"
$ cat mes_erreurs
Traceback (most recent call last):
File "<string>", line 1, in <module>
ZeroDivisionError: integer division or modulo by zero
Pour une tache couteuse en ressources, je crée un thread séparé lors de la requête et ensuite je le surveille depuis la première requête. Parfois le thread ne fonctionne pas (erreur). Comment puis je rediriger la sortie erreur de mon thread vers un fichier ? merci !
Bonjour,
Les erreurs sont envoyées à l'objet sys.stderr. Tu peux le remplacer par l'objet de ton choix. Cet objet devra implémenter une méthode write. Coup de chance : les objets fichier propose une telle méthode.
Exemple:
$ python -c "import sys; sys.stderr = open('mes_erreurs','a'); 1/0" $ cat mes_erreurs Traceback (most recent call last): File "<string>", line 1, in <module> ZeroDivisionError: integer division or modulo by zero
J'espère que cela réponds à ta question.
octobre
On 16 mai, 19:02, Alex Marandon wrote:
octobre wrote:
Pour une tache couteuse en ressources, je crée un thread séparé lo rs de la requête et ensuite je le surveille depuis la première requêt e. Parfois le thread ne fonctionne pas (erreur). Comment puis je rediriger la sortie erreur de mon thread vers un fichier ? merci !
Bonjour,
Les erreurs sont envoyées à l'objet sys.stderr. Tu peux le remplacer p ar l'objet de ton choix. Cet objet devra implémenter une méthode write. Coup de chance : les objets fichier propose une telle méthode.
Exemple:
$ python -c "import sys; sys.stderr = open('mes_erreurs','a'); 1/0" $ cat mes_erreurs Traceback (most recent call last): File "<string>", line 1, in <module> ZeroDivisionError: integer division or modulo by zero
J'espère que cela réponds à ta question.
Génial ! J'avais utilisé un gestionnaire d'exception à la place, mais ta solution convient mieux
On 16 mai, 19:02, Alex Marandon <inva...@nowhere.invalid.org> wrote:
octobre wrote:
Pour une tache couteuse en ressources, je crée un thread séparé lo rs
de la requête et ensuite je le surveille depuis la première requêt e.
Parfois le thread ne fonctionne pas (erreur). Comment puis je
rediriger la sortie erreur de mon thread vers un fichier ? merci !
Bonjour,
Les erreurs sont envoyées à l'objet sys.stderr. Tu peux le remplacer p ar
l'objet de ton choix. Cet objet devra implémenter une méthode write.
Coup de chance : les objets fichier propose une telle méthode.
Exemple:
$ python -c "import sys; sys.stderr = open('mes_erreurs','a'); 1/0"
$ cat mes_erreurs
Traceback (most recent call last):
File "<string>", line 1, in <module>
ZeroDivisionError: integer division or modulo by zero
J'espère que cela réponds à ta question.
Génial ! J'avais utilisé un gestionnaire d'exception à la place, mais
ta solution convient mieux
Pour une tache couteuse en ressources, je crée un thread séparé lo rs de la requête et ensuite je le surveille depuis la première requêt e. Parfois le thread ne fonctionne pas (erreur). Comment puis je rediriger la sortie erreur de mon thread vers un fichier ? merci !
Bonjour,
Les erreurs sont envoyées à l'objet sys.stderr. Tu peux le remplacer p ar l'objet de ton choix. Cet objet devra implémenter une méthode write. Coup de chance : les objets fichier propose une telle méthode.
Exemple:
$ python -c "import sys; sys.stderr = open('mes_erreurs','a'); 1/0" $ cat mes_erreurs Traceback (most recent call last): File "<string>", line 1, in <module> ZeroDivisionError: integer division or modulo by zero
J'espère que cela réponds à ta question.
Génial ! J'avais utilisé un gestionnaire d'exception à la place, mais ta solution convient mieux