akka入门-定时器

使用定时器可以实现将来发生的事情进行计划执行。以下代码演示了过一段时间向Actor发送消息。

1.编写Actor

在Actor中只是打印出接收到的消息

import akka.actor.UntypedActor;
import akka.event.Logging;
import akka.event.LoggingAdapter;

public class TestActor extends UntypedActor {
  LoggingAdapter log = Logging.getLogger(getContext().system(), this);

  public TestActor() {}

  @Override
  public void onReceive(Object msg ) throws Exception {
    log.info("msg : " + msg);
  }

}
2.测试类

import java.util.concurrent.TimeUnit;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import scala.concurrent.duration.Duration;
import akka.actor.ActorRef;
import akka.actor.ActorSystem;
import akka.actor.Props;

/**
 * 定时器Scheduler
 *
 * @author lcq
 *
 */
public class System {
  public static final Logger log = LoggerFactory.getLogger(System.class);

  public static void main(String[] args) throws InterruptedException {
    final ActorSystem actorSystem = ActorSystem.create("actor-system");

    final ActorRef testActor = actorSystem.actorOf(Props.create(TestActor. class));
    log.info( "1111111111");

    // 在2秒后向testActor发送消息“haha”
    actorSystem.scheduler().scheduleOnce(Duration.create(2000, TimeUnit. MILLISECONDS), new Runnable() {
      public void run() {
        testActor.tell("haha" , null);
      }
    }, actorSystem.dispatcher());

    log.info( "2222222222");

    Thread.sleep(5000);

    log.debug( "Actor System Shutdown Starting..." );

    actorSystem.shutdown();

  }

}

3.输出结果

20:57:04.311 [main] INFO  com.center.akka.scheduler.System - 1111111111
20:57:04.314 [main] INFO  com.center.akka.scheduler.System - 2222222222
[INFO] [05/17/2015 20:57:06.335] [actor-system-akka.actor.default-dispatcher-3] [akka://actor-system/user/$a] msg : haha
20:57:09.314 [main] DEBUG com.center.akka.scheduler.System - Actor System Shutdown Starting...



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值