Page History
...
Code Block | ||||
---|---|---|---|---|
| ||||
protected void persistenceSnapShot() { new TestKit(system) {{ ActorRef probe = getRef(); Props snapShotActorProp = ext.props("snapShotActor"); System.out.println("===== snapShotActor 액터생성"); ActorRef snapShotActor = system.actorOf(snapShotActorProp, "snapShotActor"); System.out.println("===== event 생성"); snapShotActor.tell("커피", ActorRef.noSender()); snapShotActor.tell("사탕", ActorRef.noSender()); snapShotActor.tell("커피", ActorRef.noSender()); snapShotActor.tell("스테이크", ActorRef.noSender()); snapShotActor.tell("라면", ActorRef.noSender()); // <-- 복구기대 상태 snapShotActor.tell("사탕", ActorRef.noSender()); snapShotActor.tell("커피", ActorRef.noSender()); System.out.println("===== 상태확인"); snapShotActor.tell( "print" , ActorRef.noSender()); expectNoMessage(java.time.Duration.ofSeconds(1)); System.out.println("===== snapShotActor 종료또는 비정상종료"); snapShotActor.tell( akka.actor.PoisonPill.getInstance() , ActorRef.noSender()); expectNoMessage(java.time.Duration.ofSeconds(1)); System.out.println("===== snapShotActor 재생성"); ActorRef snapShotActo2 = system.actorOf(snapShotActorProp, "eventActor"); System.out.println("===== 상태 복원확인을 위해 probe를 액터 참조자로 지정"); snapShotActo2.tell( "print" , probe ); // === 기대결과 1초이내에 '라면을 먹은 상태'임을 확인 : 비동기 메시지를 확인할수검사하는방법중하나 있는 방법중하나 expectMsgEquals(java.time.Duration.ofSeconds(1), "라면을 먹은 상태" ); }}; } |
...