과도한 속도의 메시지가있는 액터를 사용하고 싶습니다. 배우의 마지막 상태는 내가 셧다운 제가 전에이높은 비율의 메시지로 액터 상태를 유지하는 방법
val receiveCommand: Receive = {
case Cmd(data) =>
persistAsync(Evt(s"${data}-${numEvents}"))(updateState)
case "snap" => saveSnapshot(state)
case "print" => println(state)
}
같은 메시지
for (i <-0 to 100000){
persistentActor ! Cmd("foo"+i)
}
및 사용의 부하를 보내도록 persistAsync을 시도 내가 여기
http://doc.akka.io/docs/akka/2.3.9/scala/persistence.html#event-sourcing 에 표시된 지속성 예를 들어 다음과 같은했다 매우 중요하다 모든 것이 지속되도록 Thread.sleep (150000)을 추가했습니다. 처음에는 모두가 확인 될 것으로 보인다, 그러나 응용 프로그램을 실행 다시하는 것은 일부 데드 - 레터
> [INFO] [02/03/2015 15:35:18.187]
> [example-akka.actor.default-dispatcher-3]
> [akka://example/user/persistentActor-4-scala] Message
> [java.lang.String] from Actor[akka://example/deadLetters] to
> Actor[akka://example/user/persistentActor-4-scala#1206460640] was not
> delivered. [1] dead letters encountered. This logging can be turned
> off or adjusted with configuration settings 'akka.log-dead-letters'
> and 'akka.log-dead-letters-during-shutdown'. [INFO] [02/03/2015
> 15:35:18.192] [example-akka.actor.default-dispatcher-3]
> [akka://example/user/persistentActor-4-scala] Message
> [akka.persistence.Recover] from
> Actor[akka://example/user/persistentActor-4-scala#1206460640] to
> Actor[akka://example/user/persistentActor-4-scala#1206460640] was not
> delivered. [2] dead letters encountered. This logging can be turned
> off or adjusted with configuration settings 'akka.log-dead-letters'
> and 'akka.log-dead-letters-during-shutdown'.
or getting something like :
----------
[INFO] [02/03/2015 15:54:32.732] [example-akka.actor.default-dispatcher-11] [akka://example/user/persistentActor-4-scala] Message [akka.persistence.JournalProtocol$ReplayedMessage] from Actor[akka://example/deadLetters] to Actor[akka://example/user/persistentActor-4-scala#-973984210] was not delivered. [1] dead letters encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
[INFO] [02/03/2015 15:54:32.735] [example-akka.actor.default-dispatcher-3] [akka://example/user/persistentActor-4-scala] Message [akka.persistence.JournalProtocol$ReplayedMessage] from Actor[akka://example/deadLetters] to Actor[akka://example/user/persistentActor-4-scala#-973984210] was not delivered. [10] dead letters encountered, no more dead letters will be logged. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
A fatal error has been detected by the Java Runtime Environment:
SIGSEGV (0xb) at pc=0x00007fa2a3e06b6a, pid=18870, tid=140335801857792
JRE version: Java(TM) SE Runtime Environment (7.0_71-b14) (build 1.7.0_71-b14)
Java VM: Java HotSpot(TM) 64-Bit Server VM (24.71-b01 mixed mode linux-amd64 compressed oops)
Problematic frame:
V [libjvm.so+0x97bb6a] Unsafe_GetNativeByte+0xaa
Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
An error report file with more information is saved as:
/home/tadmin/projects/akka-sample-persistence-scala/hs_err_pid18870.log
If you would like to submit a bug report, please visit:
http://bugreport.sun.com/bugreport/crash.jsp
을가는 것을 보여줍니다 ==================== ========================================================================================================== ==
많은 양의 메시지를 처리해야하는 액터의 상태를 어떻게 유지할 수 있습니까?
시스템을 종료하기 전에 시스템이 종료되도록하십시오 : http://letitcrash.com/post/30165507578/shutdown-patterns-in-akka-2 – cmbaxter
어떤 데이터베이스를 사용하고 있습니까? –
@cmbaxter 정상 종료를하고 있지만 종료 전에 지속성 프로세스가 완료되었다는 것을 어떻게 알 수 있습니까? – igx