VPS环境中的Django动态内容 - 我什么时候需要队列?

时间:2009-09-20 08:53:01

标签: django apache nginx lighttpd

我有一些Django内容,我计划在vps上面向主机,面向Web。它动态生成缓存到磁盘的图像(除了(1)用户更改图像中的内容或(2)布局全局更新,因此所有图像都需要重新生成),当用户请求视图时,它通常不需要再生查看存储在磁盘上的内容是否是最新的(即,全局布局未更改且用户未更改任何内容),并从磁盘获取项目或生成新图像,存储并提供服务。

我已经计划了生成并存储到磁盘的过程,并且在最近运行Django dev服务器的MBP上需要大约200ms。虽然我不期待大量的点击,但我仍然对人们对处理这样的内容的意见感兴趣,所以我有几个问题:

1)应该使用什么标准来决定一个流程/任务一般是否值得交给队列系统(rabbitmq等),显然你不会将每个任务从app服务器上移开,所以如果花时间,它值得将它移出之前有多少毫秒?

2)我还没决定用它来举办什么。如果我计划有一些其他动态内容,可能需要一些时间来执行涉及图像等,我是否会更好地建议使用fastcpd,mod_wsgi等使用lighttpd或apache来表示nginx?请记住,我计划在一个VPS上托管512-1GB内存,并且如果服务正常降级并且如果有许多请求可以阻止进程锁定服务器,那将会很好新图片。

我确实计划进行更多测试,因为我不熟悉这个领域,但我想知道有这种经验的人最好去看哪个方向,没有必要尝试一些已知的事情。工作

1 个答案:

答案 0 :(得分:0)

1)如果您有足够的线程来处理请求,那么您不必担心在另一台服务器上异步处理它。话虽这么说,如果图像处理需要花费大量的CPU时间,那么你需要将它委托给另一台服务器。

2)分离静态内容和动态内容的服务将是一个好主意。这样,如果动态内容生成部分开始出现性能问题,则不会影响静态内容的提供。