Akka-2.5.12学习系列(第一个Actor)

这里我们创建第一个 Actor,名字叫 MyWork。

props()

静态方法 props() 用来构造这个 Actor 的实例,官方推荐每个 Actor 都配备一个 props() 的方法。

消息

接下来 Msg 中定义了这个 Actor 可以接收的消息。这里用 enum 变量来传递,也可以直接传递 String 或者其他类的对象。用 equals() 和 instanceof 对 msg 进行判断和转换就可以了。

生命周期

重写的 preStart(),postStop(),preRestart(),postRestart() 方法会在 Actor 生命周期的不同阶段调用,在其他文章里会介绍。

onReceive(Object msg)

onReceive(Object msg)方法是 Actor 的核心逻辑,Actor 接收到的消息都放在 MailBox 中,从这个 MailBox 中取出来的一条一条消息就通过这个方法进行处理。可以对不同消息定义不同的动作。

示例代码:

import akka.actor.ActorRef;
import akka.actor.ActorSystem;
import akka.actor.Props;
import akka.actor.UntypedAbstractActor;
import akka.event.Logging;
import akka.event.LoggingAdapter;
import scala.Option;

public class MyWork extends UntypedAbstractActor {
   

    LoggingAdapter logger = Logging.getLogger(getContext().system(), this);

    static public Props props() {
        return Props.create(MyWork.class, () -> new MyWork());
    }


    public static enum Msg {
        WORKING, EXCEPTION, STOP, RESTART, RESUME, BACK, SLEEP
    }

    @Override
    public void preStart() {
        System.out.println("MyWork preStart uid=" &#
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值