erlang服务器通用框架

来源:互联网 发布:淘宝联盟怎么样提现 编辑:程序博客网 时间:2024/04/28 07:34
%% @author ping%% @doc @todo Add description to server.%% erlang服务器通用框架-module(server).-export([start/2,call/2,cast/2]).start(Name,Mod)->register(Name,spawn(fun()->loop(Name,Mod,Mod:init())end)).loop(Name,Mod,State)->receive{From,call,Request}->{Response,NewState} = Mod:handle_call(Request,State),From ! {Name,Response},loop(Name,Mod,NewState);{From,cast,Request}->NewState = Mod:handle_cast(Request,State),loop(Name,Mod,NewState)end.call(Name,Request)->Name ! {self(),call,Request},receive{Name,Response} -> Responseend.cast(Name,Request)->Name ! { self(),call,Request }.
%% @author ping%% @doc @todo Add description to storage.-module(storage).-export([init/0,handle_call/2,add/2,find/1,start/0]).init()->dict:new().handle_call({add,Key,Value},Dict)->{ok,dict:store(Key, Value, Dict)};handle_call({find,Key},Dict)->{dict:find(Key, Dict),Dict}.add(Key,Value)->server:call(kv_server, {add,Key,Value}).find(Key)->server:call(kv_server, {find,Key}).start()->server:start(kv_server, ?MODULE).


0 0
原创粉丝点击