And*_*ume 42 python django message-queue
我在Django中有一个应用程序,需要在各种用例中向用户发送大量电子邮件.出于显而易见的原因,我不想在应用程序中同步处理此问题.
有没有人建议消息排队服务器与Python完美集成,或者他们已经在Django项目上使用过?我的堆栈的其余部分是Apache,mod_python,MySQL.
Van*_*ale 24
在您的特定情况下,它只是一个电子邮件队列,我将采取简单的方法并使用django-mailer.作为一个不错的方面,还有其他可插拔的项目,当他们在堆栈中看到它时,它们足够聪明,可以利用django-mailer.
至于更一般的队列解决方案,我还没有能够尝试其中任何一个,但这里有一个对我来说更有趣的列表:
max*_*max 14
到目前为止,我没有找到任何"好"的解决方案.我有一些更严格的软实时要求(从标签纸板箱拍照)所以可能其中一种方法足够快.我假设电子邮件可以等几分钟.
到目前为止,我还没有尝试过RabbitMQ和XMPP/ejabebrd来处理这个问题,但是我们列出了下一个要尝试的东西.RabbitMQ在2008年获得了不错的Python连接,并且有大量的XMPP库.
但是,您可能只需要在本地计算机上配置正确的邮件服务器.这可能允许您将邮件同步转储到本地邮件服务器中,从而使整个软件堆栈更加简单.
Stompserver是一个不错的选择.它轻巧,易于安装,易于使用Django/python.
我们有一个在生产中使用stompserver的系统,用于发送电子邮件和异步处理其他作业.
Django将电子邮件保存到数据库,Django中的model.post_save处理程序向stompserver发送事件,stompserver将事件传递给执行异步任务(发送电子邮件)的使用者进程.
它可以很好地扩展,因为你可以在运行时添加消费者进程 - 两个消费者可以发送两倍的电子邮件,消费者可以在单独的机器上.一个轻微的复杂问题是每个消费者都需要自己的命名队列,因此Django需要知道有多少消费者可用,并以循环方式向每个队列发送事件.(两个听取同一队列的消费者都会得到每条消息=重复).如果您只想要一个消费者流程,那么这不是问题.
我们以前有一些进程可以连续轮询数据库以查找作业,但发现它为系统增加了很多负载,即使不需要处理任何内容也是如此.
归档时间: |
|
查看次数: |
17317 次 |
最近记录: |