我有一个用 Erlang 制作的服务器应用程序。在其中我有一个记忆表,用于存储有关照片的一些信息。本着“一切都是过程”的精神,我决定将该表包装在一个gen_server
模块中,以便该
gen_server
模块是唯一直接访问该表的模块。通过向该进程(具有注册名称)发送消息来完成向该表的查询和添加信息。这个想法是会有几个客户端进程从该表中查询信息。
这工作得很好,但该gen_server
模块没有状态。它所需的一切都存储在 mnesia 表中。所以,我想知道 agen_server
是否可能不是封装该表的最佳模型?
我是否应该不让它成为一个过程,而只是通过该模块中的函数封装表格?如果该模块中出现错误,这将导致调用进程崩溃,我认为这可能会更好,因为它只会影响单个客户端,而不是现在,当它会导致
gen_server
进程崩溃时,让每个人都无法访问表(直到主管重新启动它)。
非常感谢任何输入。