4

これは簡単な質問のはずですが、答えを見つけるのに十分なほどドキュメントを回避する方法がわかりません。

クラッシュした後に OTP スーパーバイザが gen_server を再起動した場合、新しい子プロセスはクラッシュしたプロセスのメッセージ キューを継承しますか、それともメッセージはクラッシュ前に送信されますが、フロアにドロップされた古い子によってまだ処理されていませんか?

4

1 に答える 1

16

いいえ、プロセスが前のプロセスによって設定された状態を継承することはありません。スーパーバイザーは、最初にプロセスを開始するために使用したのと同じ引数を使用してプロセスを再開するだけです。

状態を回復する場合は、そのような状態が永続的に保存されていることを確認する必要があります(ETSテーブル、ディスク上のファイル、データベースなど)。

于 2011-04-05T11:17:35.330 に答える