0

在我django-notification用来发送通知的 django 应用程序中。但是我注意到在某些情况下(发送多个通知时)我的 Web 应用程序会延迟响应。尽管我通过 Ajax 请求发送通知,但我仍然认为最好实现mailtools提供线程电子邮件的库。

有没有人实施过这样的事情?这简单吗?我如何使用ThreadedMailerfrom mailtoolsin django-notification

或者,还有其他选择吗?

4

1 回答 1

2

为此目的使用芹菜。使用 django 很容易设置,您可以使用您现在正在使用的代码。

ajax 请求将电子邮件放入任务队列并返回。如果您想稍后检查任务是否成功,您可以返回您的任务 ID。

更新:

Celery 只允许你在后台调用你的函数。在你调用的 ajax 视图中说:

send_email(…)

现在tasks.py你应该定义函数:

@task
def send_email(…)

在视图中,您将通过以下方式调用它:

send_email.delay(…)

就是这样。该电子邮件将由后台工作程序守护程序使用您现有的 python 代码发送。

这不会django-notification过时。Celery 做了完全不同的事情,可以与你能想象到的任何库一起使用。

唯一的变化是任务参数必须是可选的。这意味着您必须传递数据库 ID,而不是整个对象等。

于 2012-11-26T08:32:48.640 回答