Akka持久邮箱文件声明:
持久邮箱与任何其他不太可能具有事务性的邮箱一样。如果actor在收到消息后但在完成处理之前崩溃,则消息可能会丢失。
假设actor A 使用持久邮箱作为消息队列,该队列有2 条消息,M1 和M2。演员收到 M1 并正在处理 M1。如果A在处理完M1之前崩溃了,M1是否丢失了?一个相关的问题是“A 崩溃”是什么意思:这是否意味着 A 有未捕获的异常或运行 A 的 JVM 崩溃?
Akka持久邮箱文件声明:
持久邮箱与任何其他不太可能具有事务性的邮箱一样。如果actor在收到消息后但在完成处理之前崩溃,则消息可能会丢失。
假设actor A 使用持久邮箱作为消息队列,该队列有2 条消息,M1 和M2。演员收到 M1 并正在处理 M1。如果A在处理完M1之前崩溃了,M1是否丢失了?一个相关的问题是“A 崩溃”是什么意思:这是否意味着 A 有未捕获的异常或运行 A 的 JVM 崩溃?
崩溃的原因可以是任何原因,该术语旨在表示处理未完成(被异常中断或因停电或其他任何原因在中间终止)。一旦参与者从邮箱中取出消息,它就会从邮箱中消失。如果您不希望这种行为,则必须实现诸如peek 邮箱之类的东西,请参阅此处的文档。