![](/img/trans.png)
[英]How can I send a message to my akka actor system's event stream without addressing the message to any actor in particular?
[英]How can akka persistent actor be started with guaranteed particular message received first?
我的演员扩展了akka.persistence.PersistentActor。 我想首先发送一个消息案例类SetConfig(config:String),并确保在持久保存和应用SetConfig之前,不处理其他任何消息。
实现此目标的最佳实践是什么?
我将与PersistentActor
一起使用Akka FSM 。
您可以具有以下两种状态:
sealed trait State
case object Idle extends State
case object Active extends State
和这个数据:
sealed trait Data
case object Uninitialized extends Data
final case class Config(config: String) extends Data
您的actor将扩展FSM[State, Data]
,并将:
startWith(Idle, Uninitialized)
然后,您可以说在Idle
时仅接受SetConfig
消息:
when(Idle) {
case Event(SetConfig(conf), Uninitialized) =>
goto(Active) using Config(conf)
}
转换为Active
您可以通过以下方式收到其他消息:
when(Active) {
case Event(...
// don't forget to start it up in initial state with:
initialize()
最后,在状态转换时,您可以使用常规的Akka Persistence模式来保持状态。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.