Ted*_*Ted 5 python django multithreading
我有一个django网站.最终用户的某些操作会向组中的其他用户发送电子邮件.
当用户数量大于20时,它可以在请求周期中增加1-3秒,这是我不喜欢的.我希望能够从非阻止功能发送电子邮件.
我知道RabbitMQ和Celery可以解决这个问题,但有200个用户似乎过度工程,它增加了两个我必须安装,理解和保姆的应用程序.
我已经做了一些研究,看起来两个线程.线程和子进程都是包装非阻塞调用的方法.我错过了一个明显的方法吗?使用threading.thread或subprocess方法有缺点吗?
谢谢,特德
将工作卸载到其他外部进程是非常正确的事情,一旦你完成它,它可能不是你最后一次这样做.Celery/RabbitMQ是一个不错的解决方案,好消息是它们已经存在.最近的RabbitMQ版本有一个不错的基于网络的管理应用程序和一个体面的管理API,这将使保姆很容易,而芹菜在Django应用程序中工作得很好.
你可以用子进程或线程来做到这一点,但说实话,我认为这是一个不好的习惯.不幸的是,如果你不想卸载东西,它们是你做你想做的最简单的方法.
如果你想完全去"ghetto异步电子邮件"你可以让你的应用程序只是将电子邮件转发到目录中的文件并让cron作业每分钟检查该目录中的文件目录,并将其作为电子邮件发送出去,但实际上是比兔子/芹菜更多的工作.
我说跟兔子/芹菜一起去吧.这并不像看起来那么多,它值得继续前进.
| 归档时间: |
|
| 查看次数: |
1074 次 |
| 最近记录: |