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