第109讲:Akka中的Actor异步和同步停止方式实战详解学习笔记
本讲内容:
1.Actor异步停止方式
2.Actor同步停止方式
为什么要停止actor?
Actor完成了自己的消息处理任务后,后续不再需要这个actor再继续处理工作,为了节省或回收系统资源,就有必须停止actor
Actor在正式处理邮箱中具体的邮件以前会有preStart,在preStart中进行资源的初始化,如连接网络或连接数据库或打开文件。在处理完毕邮件后,actor生命周期的最后会有环节,会有postStop,在postStop中可以进行关闭网络关闭数据库或关闭文件的句柄,在akka中要想停止 actor有多种方式:同步、异步,但都需要postStop,在postStop中进行资源回复的操作。
在postStop调用时会在内部在akka继承树上产生操作,任务完成后邮箱中的内容不会再被处理,同时会有一个具体消息叫deathWatch的消息发出,通知supervisor说自己停止了。在akka中要停止actor会有多种不同方式:
1.停止actorSystem,
/**
* Stop this actor system.This will stop the guardian actor, which in turn will recurisiverly stop all its child actor, then the system guardian (below which the logging actor reside) and the execute all registered termination handlers (See [[ActorSystem.registerOnTermination]]).
*/
Def shutdown(): Unit
停止一个actor后,其子actor会全部被停止。
2.其他方式停止actor:异步操作。
Master ! Poisonpill
Master ! Kill
_system.shutdown
Context.stop(self) //也可以停止其他actor,
以上内容是从王家林老师DT大数据课程第109讲的学习笔记。
DT大数据微信公众账号:DT_Spark
王家林老师QQ:1740415547
王家林老师微信号:18610086859
DT大数据梦工厂1至110集scala的所有视频、PPT和代码在百度云盘的链接:http://pan.baidu.com/share/home?uk=4013289088#category/type=0&qq-pf-to=pcqq.group
第109讲视频网站地址:
酷6网 | http://v.ku6.com/show/AQArmLzCxeWwjdriXXlBaA...html |
51CTO | http://edu.51cto.com/lesson/id-76215.html |