【发布时间】:2013-01-22 04:15:18
【问题描述】:
我正在 play 2.0 框架上编写一个应用程序。这个应用程序的目的是处理图像上传并在后台调整它们的大小。
上传是通过一个将文件保存到文件系统的标准后处理程序来处理的。现在这只是在事件或 IO 线程上完成的。成功保存文件后,会向 AKKA 演员发送一条消息,将原始图像的大小调整为多种不同的尺寸(目前为 4 种)。这些调整大小操作对 CPU 要求很高,并且需要一些时间。
这一切都很好,直到我在一些负载下测试应用程序。在负载下,调整大小操作实际上消耗了所有可用的 CPU 时间,因此传入的 HTTP 请求有点缺乏 CPU 时间,我们看到这些请求积压到最终请求开始超时的地步。
所以问题是,我如何配置系统(或重写它)以赋予传入的 HTTP 请求比调整大小请求更高的优先级?
【问题讨论】:
-
有趣的话题,您是否考虑过使用外部图形库+构建图像队列来调整大小(即在数据库中)?在这种情况下,您可以减慢队列执行速度,甚至在流量巨大的情况下停止它
-
由于空间问题,我们正在尝试从数据库中的排队图像迁移。