[SCALA] 스칼라 글로벌 대 Play의 실행 컨텍스트
SCALA스칼라 글로벌 대 Play의 실행 컨텍스트
어떻게에서 실행 컨텍스트를 않습니다
import scala.concurrent.ExecutionContext.Implicits.global
Play의 실행 상황과 다를 :
import play.core.Execution.Implicits.{internalContext, defaultContext}
해결법
-
==============================
1.그들은 매우 다릅니다.
그들은 매우 다릅니다.
플레이 인 2.3.x 이전에 play.core.Execution.Implicits.internalContext는 재생 내부적으로 사용 크기에 대한 고정 제약이있는 ForkJoinPool입니다. 당신은 당신의 응용 프로그램 코드를 사용해서는 안됩니다. 워드 프로세서 :
대신, 당신은 ActorSystem를 사용 play.api.libs.concurrent.Execution.Implicits.defaultContext을 사용합니다.
2.4.x에서, 그들은 모두 동일한 ActorSystem를 사용합니다. Akka 스레드의 자신의 풀 사이에 작업을 분배하지만, 보이지 않는 (구성 제외)하는 방법 것이 의미합니다. 여러 Akka 배우가 동일한 스레드를 공유 할 수 있습니다.
scala.concurrent.ExecutionContext.Implicits.global는 스칼라 표준 라이브러리에 정의 된 ExecutionContext에 있습니다. 차단 방법을 사용하면 풀에 새로운 스레드를 생성하기 위해 코드를 차단 잠재적으로 처리 할 수있는 특별한 ForkJoinPool이다. 재생이 통제 할 수없는 것 같이, 진짜로 재생 응용 프로그램에서이를 사용하지 않아야합니다. 또한 스레드를 많이 산란하고 조심하지 않으면, 메모리의 톤을 사용할 수있는 가능성이있다.
나는이 대답 scala.concurrent.ExecutionContext.Implicits.global에 대한 자세한 내용을 서면으로 작성했습니다.
-
==============================
2.그들은 동일하며에서 기본 배우 체제의 기본 디스패처를 지적하여 Akka 또는 결합 된 응용 프로그램 또는를 재생합니다.
그들은 동일하며에서 기본 배우 체제의 기본 디스패처를 지적하여 Akka 또는 결합 된 응용 프로그램 또는를 재생합니다.
play.api.libs.concurrent.Execution.Implicits.defaultContext
play.core.Execution.Implicits.internalContext
class ClassA @Inject()(config: Configuration) (implicit ec: ExecutionContext) { ... }
하지만이 다르다 :
scala.concurrent.ExecutionContext.Implicits.global
또한 DB 드라이버, 예를 들어, 당신이 매끄러운을 사용하는 경우, 자신의 실행 컨텍스트와 함께 올 수 있습니다. 어쨌든,
from https://stackoverflow.com/questions/30805337/plays-execution-contexts-vs-scala-global by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 슬릭의 동반자 객체와 매핑 프로젝션 (0) | 2019.11.19 |
---|---|
[SCALA] 분할 마루 파일에서 읽기 DataFrame (0) | 2019.11.19 |
[SCALA] X의 컬렉션에 옵션 [X]의 스칼라 수집을 변환하는 방법 (0) | 2019.11.19 |
[SCALA] 아파치 Buildr / 메이븐 2 REPO 이름을 어떻게 찾을 수 있습니까 (0) | 2019.11.19 |
[SCALA] S3A가 매우 느립니다 동안 불꽃을 사용하여 S3에 마루 파일을 작성합니다 (0) | 2019.11.19 |