我正在从 Django 发送电子邮件(使用 Webfaction)。然而,这非常慢,所以我想在后台发送电子邮件,即使电子邮件尚未发送,也会向用户返回响应。
关于什么是最好的方法有什么想法吗?
我读过有关芹菜的内容,但设置它的步骤似乎很多:http://markliu.me/2011/sep/29/django-celery-on-webfaction-using-rabbitmq/没关系,但我想知道在尝试之前这是可行的方法。
线程怎么样?http://www.artfulcode.net/articles/threading-django/
或者计划任务?http://docs.webfaction.com/software/general.html
您有过其他经历吗?
让我们简单概述一下可能的解决方案:
线程是糟糕的解决方案 - 因为它们仅在您的响应未发送之前才处于活动状态。
Celery - 是标准方式,很容易添加到 django (只需查看有关 django-celery 的大量教程之一,对于使用数据库作为代理的任务就足够了)
Cron 作业 - 并不是真正好的程序员方式,因为您的代码将存储在您的存储库和系统 crontab 中。所以每次你都应该考虑一下。
另一种方法是使用 Eventlet 或 Gevent 之类的东西。绿色线程将在空闲状态下工作,并且对于您的标准任务 - 很容易添加。缺点: - 你应该了解很多有关greenlet的知识,你应该小心greenlet中的错误捕获。
我建议使用 Celery,因为现在添加它很容易,有很多教程和文档。而且它很容易随着您的应用程序一起成长。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)