我不确定如何为群集分片配置Akka Actor,我不太确定的一件事是,是否可以为一个实体配置多个停止消息以正常关闭。
例如,如下所示的实体配置将同时触发'onDelete'和'onExit'的正常关机,或者仅针对'onExit'这样做?
sharding
.init(
Entity(Actor1Key) {
context => ....
}
)
.withStopMessage(Actor1.onDelete)
.withStopMessage(Actor1.onExit)
如果您不知道我如何实现此行为?
寻求答案
您指定的内容只会触发Actor1.onExit
的停止消息。原因是如何为实体定义停止消息:
val stopMessage: Optional[M],
所以您看到这是一个普通的可选内容,因此不可能有多个元素。您还可以检查withStopMessage
的实现方式here:
def withStopMessage(newStopMessage: M): Entity[M, E] =
copy(stopMessage = Optional.ofNullable(newStopMessage))
因此,您基本上在每次调用withStopMessage
时都会“覆盖”该消息。不幸的是,我不知道其他指定多个停止消息的方式(除了将多个消息组合为一个共同特征之外,但我认为这不是您想要的)。