django通知。如何使用线程发送电子邮件?

django通知。如何使用线程发送电子邮件?,django,django-notification,Django,Django Notification,在django应用程序中,我使用django通知发送通知。然而,我注意到在某些情况下(当发送多个通知时),我的web应用程序会延迟响应。虽然我通过Ajax请求发送通知,但我仍然认为最好是实现mailtools库,该库提供线程化电子邮件 有人实施过这样的事情吗?容易吗?如何在django通知中使用mailtools中的ThreadedMailer 或者,还有其他选择吗?用于此目的。使用django进行设置很容易,您可以使用现在正在使用的代码 ajax请求将电子邮件放入任务队列并返回。如果以后要检查

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

有人实施过这样的事情吗?容易吗?如何在
django通知中使用
mailtools
中的
ThreadedMailer

或者,还有其他选择吗?

用于此目的。使用django进行设置很容易,您可以使用现在正在使用的代码

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

更新:

芹菜只允许您在backgound中调用函数。在您调用的ajax视图中说:

send_email(…)
现在在
tasks.py
中,您应该定义函数:

@task
def send_email(…)
在视图中,您可以通过以下方式调用它:

send_email.delay(…)
就这样。电子邮件将由后台工作人员deamon使用您现有的python代码发送

这不会使
django通知
过时。芹菜做完全不同的事情,可以和你能想象的任何菜一起使用


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

这很好,谢谢。芹菜是否使django通知过时?是否所有电子邮件操作都自动在芹菜中排队?(或者它们需要在ajax请求中?)这太棒了!最后一件事。我猜在
def send_mail()
中我添加了
通知。发送(args)
,就这样?我相信你是对的。我从未使用过django通知,但我每天都用芹菜来处理数百项任务。