现在我想要一个演员向其他演员发送消息,同时接收来自其他人的消息。看来我需要在 Akka 中使用多线程。下面是我的代码:
def receive = {
case Rumor => {
count+=1;
if ...
else self ! Sleep(FiniteDuration(20, "millis"))
}
case Sleep(duration) => {
case object WakeUp
context.system.scheduler.scheduleOnce(duration, self, WakeUp)
context.become(
{
case WakeUp => context.unbecome()
others ! Rumor
}, discardOld = false
)
}
case _=> .....
}
我的问题是:
1)我不确定我的代码会按预期工作。参考在actor内部使用Akka调度器
2)我已经导入
import scala.math._
import akka.actor._
import scala.util.Random
import scala.concurrent.duration._
但编译器仍然报告错误:
error: Cannot find an implicit ExecutionContext, either require one yourself or import ExecutionContext.Implicits.global
context.system.scheduler.scheduleOnce(duration, self, WakeUp)