Django模型、信号和电子邮件发送延迟

Django模型、信号和电子邮件发送延迟,django,django-models,django-signals,Django,Django Models,Django Signals,我在我的模型中添加了一个信号,该信号在模型保存后会向某些电子邮件地址发送电子邮件(通过models.signals.post\u save.connectsignal和send\u mail发送电子邮件)。这种想法仍然会给用户带来延迟,当他们在网站上保存模型时,他们必须等到所有这些电子邮件都发送完毕,然后才收到服务器的响应 在尝试信号之前,我尝试包装我的模型的保存方法,在super(Foo,self).save(*args,**kwargs)之后,我发送电子邮件。这种延迟体验也发生在这种方法中

我在我的模型中添加了一个信号,该信号在模型保存后会向某些电子邮件地址发送电子邮件(通过
models.signals.post\u save.connect
signal和
send\u mail
发送电子邮件)。这种想法仍然会给用户带来延迟,当他们在网站上保存模型时,他们必须等到所有这些电子邮件都发送完毕,然后才收到服务器的响应

在尝试信号之前,我尝试包装我的模型的保存方法,在
super(Foo,self).save(*args,**kwargs)
之后,我发送电子邮件。这种延迟体验也发生在这种方法中

我只是希望我的电子邮件发送操作在后台完成,而不向站点的用户显示延迟


如何解决这个问题?

为了避免响应延迟,您希望在另一个进程中异步执行此操作


这个问题是关于如何处理的:

最简单的方法是将电子邮件排队,然后让守护进程发送它们。退房

因为你似乎只关心发送邮件,你可以从两个步骤开始。首先,使用此选项导入django mailer版本的send_mail:

# favour django-mailer but fall back to django.core.mail
from django.conf import settings

if "mailer" in settings.INSTALLED_APPS:
    from mailer import send_mail
else:
    from django.core.mail import send_mail
然后创建一个cronjob,调用
manage.py send\u mail
发送邮件。检查例如cronjob条目

如果没有收到任何电子邮件,请尝试在控制台上运行
manage.py send\u mail
。这似乎是人们面临的首要问题