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

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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值