6

Play で同時実行を処理する方法に関するいくつかのチュートリアルを読み、いくつかの例を見つけました。

非同期ジョブ

import scala.concurrent.{ExecutionContext, future}

def sendEmailAsync(from: String, to: String, subject: String, body: String) = {
  import ExecutionContext.Implicits.global // in scala.concurrent

  future {
    EmailHelper.sendEmail(from, to, subject, body)
  }
}

スケジュールされたジョブ

import play.api.libs.concurrent.{Akka, Execution}

def sendEmailOnSchedule(from: String, to: String, subject: String, body: String) = {
  import scala.concurrent.duration._
  import Execution.Implicits.defaultContext // in play.api.libs.concurrent

  Akka.system.scheduler.scheduleOnce(10 seconds) {
    EmailHelper.sendEmail(from, to, subject, body)
  }
}

さて、私は少し混乱しています...最初の例では を使用scala.concurrent.ExecutionContext.Implicits.globalし、2 番目の例では を使用していますplay.api.libs.concurrent.Execution.Implicits.defaultContext。なんで?舞台裏で何が起こっているのか誰か説明してもらえますか?

4

2 に答える 2