3 java scala amazon-s3 playframework-2.3
我正在使用Play Framework(Scala版本)和Amazon AWS Java SDK将Amazon S3集成到应用程序中.
AWS开发工具包有一个TransferManager类,它提供了一个抽象来管理线程池,以处理下载/上传到S3.
我试图确定是否可以将自定义ExecutionContexts的核心支持Play集成到SDK提供的此对象中.特别是,在实例化AWS SDK提供的TransferManager时,您可以提供自定义ExecutorService作为可选参数.
Scala的ExecutionClass通过其类声明中的"with"关键字绑定ExecutorService类,所以我想知道是否有一些机制可以从ExecutionContext获取ExecutorService对象,就像转换ExecutionContext => ExecutorService的方法一样.
如果没有,还有其他办法吗?目前我只是在Play的标准方法之外的类中直接实例化自定义ExecutorService,这里概述了:
https://www.playframework.com/documentation/2.3.x/ThreadPools
这感觉很麻烦,违反了框架提供的惯例.
谢谢你的时间.
如果你像这样创建你的上下文(不要盲目地复制粘贴 - 它被配置为阻塞操作):
val blockingContext: ExecutionContext = {
val executor = new ThreadPoolExecutor(100, 100, 1, TimeUnit.MINUTES, new LinkedBlockingQueue(1000))
executor.allowCoreThreadTimeOut(true)
ExecutionContext.fromExecutorService(executor) // main part
}
Run Code Online (Sandbox Code Playgroud)
然后你就可以从中得到ExecutorService实例:
val executor: ExecutorService = blockingContext.prepare().asInstanceOf[ExecutorService]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1215 次 |
| 最近记录: |