是否可以在Akka群集中定义几个停止消息

问题描述 投票:0回答:1

我不确定如何为群集分片配置Akka Actor,我不太确定的一件事是,是否可以为一个实体配置多个停止消息以正常关闭。

例如,如下所示的实体配置将同时触发'onDelete'和'onExit'的正常关机,或者仅针对'onExit'这样做?

sharding
   .init(
       Entity(Actor1Key) {
          context => ....
       }
   )
   .withStopMessage(Actor1.onDelete)
   .withStopMessage(Actor1.onExit)

如果您不知道我如何实现此行为?

寻求答案

akka akka-cluster akka-supervision
1个回答
0
投票

您指定的内容只会触发Actor1.onExit的停止消息。原因是如何为实体定义停止消息:

val stopMessage: Optional[M],

所以您看到这是一个普通的可选内容,因此不可能有多个元素。您还可以检查withStopMessage的实现方式here

def withStopMessage(newStopMessage: M): Entity[M, E] =
    copy(stopMessage = Optional.ofNullable(newStopMessage))

因此,您基本上在每次调用withStopMessage时都会“覆盖”该消息。不幸的是,我不知道其他指定多个停止消息的方式(除了将多个消息组合为一个共同特征之外,但我认为这不是您想要的)。

© www.soinside.com 2019 - 2024. All rights reserved.