2

我每天使用 django (1.5.2) 发送邮件。大约 100 次左右,间隔约 2/3 分钟。

直到最近我才真正遇到过任何问题(自从我升级到 1.5.2 后就有可能)。现在有时需要长达 2 小时 (!) 才能发送这些邮件。

发生的情况是,我最多有 5 个线程尝试使用 send_mail 方法(https://docs.djangoproject.com/en/dev/topics/email/#send-mail)发送邮件。线程完成后,会创建一个新线程,做一些工作,然后发送邮件。到了发送时间时,它们都“停止”(或死锁或其他东西)有时几分钟,有时几小时,直到最后他们发送邮件,一切都再次正常(下一个线程快速发送邮件)。

我使用 postfix 和 gmail 帐户作为邮件服务器。当只发送一封邮件时(在 django shell 中或当一个线程在另一个小时发送一封邮件时)没有问题(邮件立即发送)。每个 send_mail 调用大约有 4 个收件人,所以大约是 100 ~ 4 * 25。

最后在查看 mail.info 日志时,每个日志都在邮件实际发送的时间加上时间戳,也许建议问题出在 django 上?

问题是我不知道如何调试这个,我应该在哪里看,如果问题来自 django 或 gmail。任何建议将不胜感激。

谢谢 !

4

1 回答 1

3

也许设置Celery而不是线程?

您也可以使用像SendGrid这样的电子邮件服务,而不必担心邮件的负载。只需通过 REST 或使用 SMTP 访问他们的 API

于 2013-09-19T18:53:28.207 回答