这应该是一个简单的问题,但我不熟悉文档,找不到答案。
如果 OTP 监管者在 gen_server 崩溃后重新启动它,新的子进程是否继承了崩溃进程的消息队列,或者在崩溃之前发送但尚未被旧的子进程处理的消息会丢失吗?
这应该是一个简单的问题,但我不熟悉文档,找不到答案。
如果 OTP 监管者在 gen_server 崩溃后重新启动它,新的子进程是否继承了崩溃进程的消息队列,或者在崩溃之前发送但尚未被旧的子进程处理的消息会丢失吗?
不,进程永远不会继承之前进程设置的任何状态。监管者只会使用与最初启动它时相同的参数重新启动该进程。
如果您想恢复状态,请确保这种状态以持久性方式保存(ETS表、磁盘上的文件、数据库等)。