我有一個在Erlang製作的服務器應用程序。其中我有一個mnesia表 ,存儲一些照片信息。本着「一切都是 過程」的精神,我決定將該表包裝在gen_server
模塊中,以便 gen_server
模塊是唯一直接訪問該表的模塊。查詢 並向該表添加信息是通過向該進程 (其具有註冊名稱)發送消息來完成的。這個想法是將有幾個客戶端進程查詢來自該表的信息。使用gen_server封裝mnesia表?
這工作得很好,但gen_server
模塊沒有狀態。它所要求的一切都存儲在mnesia表中。所以,我想知道gen_server
可能不是封裝該表的最佳模型嗎?
我是不是應該讓它成爲一個進程,而只是通過該模塊中的函數封裝表 ?如果該模塊中存在錯誤,那麼 會導致調用進程崩潰,我認爲這可能會更好,因爲 它只會影響單個客戶端,而不是現在,這會導致進程到達 gen_server
進程導致每個人都無法訪問表格(直到主管重新啓動 ))。
任何輸入,非常感謝。