我在play 2.0框架上编写应用程序。这个应用程序的目的是处理图片上传和调整他们在后台。在playframework中,我如何区分io线程优先于akka actor?
通过将文件保存到文件系统的标准后处理程序处理上载。现在,这只是在事件或IO线程上完成的。文件成功保存后,AKKA actor会发送一条消息将原始图像调整为多种不同的尺寸(当前为4)。这些调整大小的操作对CPU要求很高,需要一些时间。
这一切都很好,直到我在某些负载下测试应用程序。在负载情况下,调整大小操作正在有效地占用所有可用的CPU时间,因此传入的HTTP请求在CPU时间上有点吃力,我们看到这些请求的积压达到最终请求开始超时的程度。
所以问题是,我如何配置系统(或重新编写它)为传入的HTTP请求提供比调整大小请求更高的优先级?
有趣的话题,你有没有考虑使用外部图形库+建立图像队列来调整大小(即在数据库中)?在这种情况下,您可能会减慢队列执行速度,甚至在流量过大的情况下停止执行队列。 – biesior
由于空间问题,我们尝试从db中的排队映像迁移。 – harmanjd