Projet

Général

Profil

Bug #1222

crash lors d'email dans un cron

Ajouté par Thomas Noël il y a plus de 12 ans. Mis à jour il y a plus de 12 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
16 janvier 2012
Echéance:
% réalisé:

90%

Temps estimé:
Patch proposed:
Planning:

Description

Lorsqu'on est en mode cron, get_response() ne fonctionne pas (logique) et on ne peut donc pas ajouter des "after jobs" pour l'envoi des mails (cf trace ci dessous).

perform_items <wcs.workflows.SendmailWorkflowStatusItem instance at 0x18c9368>
[2012-01-16 16:54:08] exception caught
Exception:
  type = '<type 'exceptions.AttributeError'>', value = ''NoneType' object has no attribute 'response''

Stack trace (most recent call first):
  File "/usr/lib/pymodules/python2.7/quixote/publish.py", line 317, in get_response
   315 
   316 def get_response():
>  317     return _publisher.get_request().response
   318 
   319 def get_field(name, default=None):

  File "/home/thomas/dev/au-quoditien/wcs/wcs/qommon/emails.py", line 332, in email
   330         s.close()
   331     else:
>  332         get_response().add_after_job('sending email',
   333                 EmailToSend(msg_from, rcpts, msg.as_string()),
   334                 fire_and_forget = True)

  locals: 
     attachments = ()
     encoding = 'utf-8'
     multipart = None
     hide_recipients = False

Fichiers

wcs-cron-email.diff (666 octets) wcs-cron-email.diff Thomas Noël, 17 janvier 2012 10:03

Demandes liées

Lié à Au quotidien - Bug #1216: L'élément de worflow "changer de statut après expiration" ne fonctionne pasFermé13 janvier 2012

Actions

Révisions associées

Révision 1c557a24 (diff)
Ajouté par Thomas Noël il y a plus de 12 ans

emails: don't delay the handling when there is no request (cronjob)

fix #1222

Historique

#1

Mis à jour par Thomas Noël il y a plus de 12 ans

  • Statut changé de Nouveau à En cours

Un contournement proposé : quand il n'y a pas de request (et donc pas de réponse associée), on passe dans le mode "not fire_and_forget" pour les mails. A faire au debut de qommon.emails.email() ... ?

#2

Mis à jour par Thomas Noël il y a plus de 12 ans

Et voici un patch.

#3

Mis à jour par Thomas Noël il y a plus de 12 ans

  • % réalisé changé de 0 à 90

Appliqué par commit r2236.

#4

Mis à jour par Thomas Noël il y a plus de 12 ans

  • Statut changé de Solution déployée à Fermé

Formats disponibles : Atom PDF