gen_server中的数据是否会在其主管重新启动后保留?

Yan*_*Yan 5 erlang erlang-otp

我有一个主管,启动许多gen_server.每个gen_server都有很多数据加载需要花费很多时间.我想知道错误发生的时间,存储在gen_server状态的数据及其进程dict是否会保留下次启动,所以我不需要再次启动它们?

Ada*_*erg 11

Erlang行为的当前状态不会保存在任何地方.你必须自己照顾好自己.

您可以在外部(在另一个进程中,在ETS表中,数据库等)中将状态重新保存在某个位置,或者确保您的init/1功能足够智能和动态,以便能够在启动时重新创建状态(恢复现有文件,重新创建)一些缓存基于原始输入参数等)

基本上,您必须定义哪些数据应该在崩溃中存在以及如何保留或重新创建它.