创建新线程以发送电子邮件管理员

时间:2011-11-04 04:40:10

标签: django multithreading email error-handling

在我的Django代码中,我有以下内容:

   #ajax call 
   ...
    try:
       do sth
       ...
    except Exception as e:
       _email_admin()
       return HttpResponseServerError(e)

然而,上述情况会减慢用户的回报,这绝对不是什么好事。

所以我问你是否可以告诉我是否有可能让新线程发送电子邮件,这样它就不会延迟返回给用户?

谢谢。

PS:我知道如果我没有捕获异常,则会创建500错误,Django会通过电子邮件发送给管理员。但我需要捕获异常,以便我仍然可以返回Ajax调用。

1 个答案:

答案 0 :(得分:1)

您的代码正在做Django会做的事情,只需将其删除即可。我不记得是否在工作线程上发送邮件,但无关紧要 - 如果您必须发送错误邮件,那么您的代码已损坏。节省几毫秒将绝对没有你买。特别是这是异步调用。

此外,对于像这样的东西,你最好使用Celery或类似的东西,而不是创建线程。