我有一个项目,我通过一个单独的线程发送几封电子邮件,以加快最终用户的流程。它运作成功,但我只是想知道是否有任何我可能没有考虑过的陷阱?我最担心的是用户单击一个按钮,它表示已经发送了消息(因为它已经被发送到线程发送),但由于某种原因,线程可能无法发送它。是否存在线程可能过早中止的情况?
请注意,我不是在讨论网络中断或电子邮件收件人不存在的明显问题。为简单起见,请假设连接已启动,邮件服务器处于活动状态且收件人有效。例如,如果用户在线程完成之前杀死浏览器,则线程是否可能过早中止?
这可能是一个愚蠢的问题,但我只是想确保我知道以这种方式使用线程的全部后果。在此先感谢您的帮助。
答案 0 :(得分:1)
您可以考虑将消息放入队列并使用外部cron作业发送,而不是在线程中执行此操作。 django-mailer完全透明地管理它。
答案 1 :(得分:0)
杀死HTTP连接不应该终止你的电子邮件线程。但是,当然,正如您所注意到的,发送电子邮件(SMTP服务器关闭,网络中断,代码中的错误......)会出现很多问题。