gen-server

    0熱度

    2回答

    我想在我的gen_server停止時執行一些代碼。我有我的gen_server陷阱退出(我添加到init回調process_flag(trap_exit, true))。這很有效,因爲terminate/2在進程退出前總是被調用。我知道,因爲我陷入退出鏈接進程崩潰不會崩潰我創建的gen_server。我可以解決這個問題,但我想知道是否有替代使用process_flag(trap_exit, tru

    0熱度

    3回答

    如何檢測添加到特定目錄的新文件? 我在找什麼就像創建一個新文件時的event_listener。我對使用循環不感興趣,因爲在將文件添加到目錄時,需要使用該文件的名稱,因此我一直在搜索目錄中搜索新文件。

    9熱度

    2回答

    我正在通過一個問題工作,並注意到一些代碼,以前的程序員使用PID的標準約定傳遞消息!信息。我一直在使用gen_server:cast/2。我想知道是否有人能夠向我解釋在兩者之間進行選擇時的關鍵區別和考慮事項?

    1熱度

    1回答

    原諒我的英語不好, 我的意思是,當一個gen_server大跌,error_logger打印"Last message in was"和"When Server State",服務器狀態值的狀態之前處理的最後一條消息?

    0熱度

    1回答

    我在使用Erlang模塊時遇到了一些麻煩。這裏是我寫的: -module(basic_gen_server)。 -export([start/1,call/2,cast/2])。 start(Module) -> register(server, spawn(basic_gen_server,gen_server_loop,[Module, Module:init()])), serve

    1熱度

    1回答

    我經歷的萬應靈藥「入門」的教程,在使用下面的代碼片段: test "removes buckets on exit", %{registry: registry} do KV.Registry.create(registry, "shopping") {:ok, bucket} = KV.Registry.lookup(registry, "shopping") Ag

    0熱度

    1回答

    我試圖寫一個簡單的投票踢選項添加到我現有的服務器。 我有一個消息路由器使用gen_server,這存儲所有連接的客戶端使用init([]) -> {ok, dict:new()}。路由器與也是gen_server的tcp服務器分開,但處理tcp請求,然後將其中繼到路由器。 由於「事物」正在單獨處理/存儲,我想存儲用戶被踢,選民列表以及是否成功。因此,這需要至少在路由器內以一種全球性的方式,並且理想

    1熱度

    1回答

    有人告訴我,simple_one_for_one對聊天應用程序非常有用,因爲每個聊天客戶端都是一個服務器進程(gen_server)。這是正確的嗎? 我想知道爲什麼我們需要它?爲什麼不創建只有一箇中心服務器(gen_server)來處理所有聊天客戶端通信?因爲聊天客戶端的數量可能非常大,所以只有一個服務器無法快速處理,使系統變慢? 我想也許創建太多像simple_one_for_one這樣的服務器

    0熱度

    1回答

    我是Erlang的新手,我正在嘗試構建一個簡單的遊戲服務器(學習目的)。 我有一個客戶端控制器(超級用戶)創建多個客戶端處理程序(gen_server)。我還有一個遊戲控制器(主管)創建了多個遊戲處理程序(gen_server)。 一個遊戲處理程序(遊戲桌)然後將與幾個客戶端處理程序(玩家)進行通信。我創建這樣的客戶端處理程序: client_handler.erl: start_link(Cli

    2熱度

    2回答

    在調用回調函數之後可以檢查gen_server的內部狀態嗎?我寧願不要在這裏更改我的服務器的API。