在Play 2.3

时间:2015-11-17 17:47:47

标签: file-upload playframework-2.3

TL; DR:是否可以为Action的body解析器指定ExecutionContext?或者是否有另一种方法可以限制可能同时上传大文件的数量?

假设我们使用允许大文件上传的正文解析器进行异步操作(即,对于具有1GB堆的应用程序,为100MB)。如果很多人想要同时上传大文件,我们应该关注内存消耗,因为Play Framework 2.3文档中有以下语句:

  

基于文本的正文解析器(例如text,json,xml或formUrlEncoded)使用最大内容长度,因为它们必须将所有内容加载到内存中。

Source: Play 2.3 Body Parsers

然后,除了增加这些文件上传的最大内容长度之外,将大文件上传放在自己的线程池中以限制上传大文件的可能并发线程数似乎是有意义的。

我们可以通过传递该线程池的ExecutionContext将Future分配给特定的线程池。

Future { ... }(myExecutionContext)

但是,在这种情况下,正文的解析似乎发生在框架代码中的某处,并且不清楚应用程序员是否有机会指定应该使用哪个线程池进行解析。

在Play 2.3中限制同时播放大文件数量的最佳方法是什么?

0 个答案:

没有答案