第111讲:Akka中的Actor中用become和unbecome动态切换receive的具体处理逻辑实战学习笔记

来源:互联网 发布:微信专用淘宝二维码 编辑:程序博客网 时间:2024/05/16 07:25

111讲:Akka中的Actor中用becomeunbecome动态切换receive的具体处理逻辑实战学习笔记

本期内容:

1.动态切换actor处理逻辑分析

2.Becomeunbecome代码实战

可以改变actor具体处理业务逻辑的代码,而且是动态改变。

可以借助akka提供的becomeunbecome机制动态地切换当前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

 

 

0 0
原创粉丝点击