我有一个监督两个子进程的主管进程;主进程和备份进程(如果主进程退出)。
如果主要进程在其邮箱中仍有邮件的情况下发生故障,那么备份进程是否有办法接管并处理原始主进程邮箱中留下的邮件?
答案 0 :(得分:0)
如果您指的是进程而不是节点,并且您希望确保处理所有传入的消息。无论是通过主进程还是通过备份进程,最好将传入的消息直接存储在Mnesia表中。这样您就可以继续处理备份过程。
那就是说,我认为你试图解决的问题可以由OTP自动处理。您永远不需要创建备份过程。如果一个崩溃,你可以告诉主管重新生成相同的gen_server。
答案 1 :(得分:0)
在这种情况下我通常会将传入的消息推送到ets表中。这有一些微妙之处。进一步讨论here