第111讲:Akka中的Actor中用become和unbecome动态切换receive的具体处理逻辑实战学习笔记
本期内容:
1.动态切换actor处理逻辑分析
2.Become和unbecome代码实战
可以改变actor具体处理业务逻辑的代码,而且是动态改变。
可以借助akka提供的become和unbecome机制动态地切换当前actor的处理逻辑。
代码:
Case class Spark
Case class Flink
Class SparkFlinkActor extends Actor {
import context._
var cont = 0
def receive: Receive = {
case Spark =>
println(“Here is Spark!!!”)
count = count + 1
Thread.sleep(100)
self ! Flink //receive在收到Flink消息后就会直接进入become内
become { //把处理代码切换成become内的逻辑
//become之前的代码在become出现后就不再存在了
case Flink =>
println(“Here is Flink!!!”)
count = count +1
Thread.sleep(100)
self ! Spark
unbecome() //把代码处理逻辑切换一次,把become代码从堆栈中弹出。
}
if(count > 10) countext.stop(self)
}
}
object MyActorSystem {
def main(args: Array[String]): Unit = {
val _system = ActorSystem(“BecomeUnbecome”)
val sparkFlinkActor = _system.actorOf(Props[SparkFlinkActor])
sparkFlinkActor ! Spark
Thread.sleep(2000)
_system.shutdown
}
}
以上内容是从王家林老师DT大数据课程第111讲的学习笔记。
DT大数据微信公众账号:DT_Spark
王家林老师QQ:1740415547
王家林老师微信号:18610086859
DT大数据梦工厂1至111集scala的所有视频、PPT和代码在百度云盘的链接:http://pan.baidu.com/share/home?uk=4013289088#category/type=0&qq-pf-to=pcqq.group
第111讲视频网站地址:
51CTO | http://edu.51cto.com/lesson/id-76286.html |