Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当第三方库请求ExecutionService时,请使用Scala ExecutionContext_Java_Scala_Amazon S3_Playframework 2.3 - Fatal编程技术网

Java 当第三方库请求ExecutionService时,请使用Scala ExecutionContext

Java 当第三方库请求ExecutionService时,请使用Scala ExecutionContext,java,scala,amazon-s3,playframework-2.3,Java,Scala,Amazon S3,Playframework 2.3,我正在使用Play框架(Scala版本)和AmazonAWSJavaSDK将AmazonS3集成到应用程序中 AWS SDK有一个TransferManager类,它提供了一个抽象来管理线程池,以处理到S3的下载/上传 我试图确定是否有可能将Play对自定义ExecutionContext的核心支持集成到SDK提供的这个对象中。特别是,在实例化AWS SDK提供的TransferManager时,可以提供自定义ExecutorService作为可选参数 Scala的ExecutionClass通

我正在使用Play框架(Scala版本)和AmazonAWSJavaSDK将AmazonS3集成到应用程序中

AWS SDK有一个TransferManager类,它提供了一个抽象来管理线程池,以处理到S3的下载/上传

我试图确定是否有可能将Play对自定义ExecutionContext的核心支持集成到SDK提供的这个对象中。特别是,在实例化AWS SDK提供的TransferManager时,可以提供自定义ExecutorService作为可选参数

Scala的ExecutionClass通过其类声明中的“with”关键字绑定ExecutorService类,因此我想知道是否有某种机制可以从ExecutionContext获取ExecutorService对象,就像转换ExecutionContext=>ExecutorService的方法一样

若否,是否有其他方法?目前,我只是在Play的标准方法之外的类中直接实例化一个定制ExecutorService,如下所述:

这感觉很混乱,而且与框架提供的约定背道而驰


谢谢你抽出时间

ExecutionContext的一些实现实现了ExecutionContextExecutorService特性,它是ExecutionContext和ExecutorService的子接口。您可以检查从Play/Akka获得的ExecutionContext是否是其中之一。

如果您这样创建您的上下文(不要盲目复制粘贴此内容-它配置为阻止操作):

然后您将能够从中获取
ExecutorService
实例:

val executor: ExecutorService = blockingContext.prepare().asInstanceOf[ExecutorService]

这看起来和我要找的一模一样。我将在文档中了解asInstanceOf的工作原理。这只是用于向下转换的Scala语法。请注意,prepare()方法自Scala 2.12以来一直被弃用
val executor: ExecutorService = blockingContext.prepare().asInstanceOf[ExecutorService]