1
increment()
関数が呼び出されるたびにカウンタをインクリメントするgen_server
があります。gen_server関数にパラメータを渡すには?
-module(genserver).
-export([start_link/0, start/0, increment/0]).
-behaviour(gen_server).
-export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]).
init([]) ->
{ok, "counter.txt"}.
start() ->
gen_server:start({local, ?MODULE}, ?MODULE, [], []).
increment() ->
gen_server:call(?MODULE, increment).
handle_call(increment, _From, File) ->
Counter = case file:read_file(File) of
{ok, Binary} -> binary_to_integer(Binary);
{error, enoent} -> 0
end,
ok = file:write_file(File, integer_to_binary(Counter + 1)).
handle_cast(_Req, State) ->
{noreply, State}.
handle_info(_Info, State) ->
{noreply, State}.
terminate(_Reason, _State) ->
ok.
code_change(_OldVsn, State, _Extra) ->
{ok, State}.
は、ここでシェルが
Eshell V7.3 (abort with ^G)
1> c("C:/Users/guga.melkadze/Desktop/testgen").
{ok,testgen}
2> testgen:start().
{ok,<0.39.0>}
3> testgen:increment().
920
4> testgen:increment().
921
5> testgen:increment().
922
は今、私は一つのパラメータ私はgenserver:increment()
メソッドを呼び出すたびに送信する必要がある例を実行しています。例えば、genserver:increment(someParameter)
。これをどのように達成するのですか?
あなたは私に多くの助けをしました。 –