光滑的播放和执行上下文

问题描述 投票:0回答:1

阅读Play Framework文档时,明确的是当使用阻塞I / O操作或CPU密集型操作时,应将这些操作放在另一个ExecutionContext上。他们还明确建议在数据库示例中执行此操作。

但是阅读Slick文档他们也说Slick在ExecutionContext上进行查询,所有操作都是异步的。

问题,在默认的ExecutionContext中使用Slick in Play是否可以?

编辑:Scala。

scala playframework slick
1个回答
1
投票

在可以在应用程序属性文件中配置的小型hicariCP池中执行所有IO工作。它只需要ExecutionContext用于DB调用之间的操作。例如,当您在map上调用DBIOAction方法时。来自slick documentation

如果操作依赖于序列中的先前操作,则必须使用flatMap或map动态计算它。这两种方法加上过滤器可以用于动作排序的理解。由于它们采用函数参数,因此它们还需要一个隐式的ExecutionContext来运行该函数。这样,Slick确保不会在数据库线程池上运行非数据库代码。

因此,在此方法中不执行任何阻止操作之前,使用Play默认ExecutionContext是安全的。

© www.soinside.com 2019 - 2024. All rights reserved.