我已经阅读了一些关于如何在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
而第二个例子使用play.api.libs.concurrent.Execution.Implicits.defaultContext
.为什么?有人能解释一下幕后发生的事吗?