Erlang gen_服务器终止原因:返回值错误

Erlang gen_服务器终止原因:返回值错误,erlang,erlang-shell,Erlang,Erlang Shell,我遵循的是Hynek-Pichi-Vychodil给出的执行周期性任务的示例 我遇到了一个问题,因为我想将一些参数也传递给start_link函数,该函数将在我的do_task()函数中使用。但是,正如给定的那样,start_link/4需要返回{ok,Pid},在我的例子中,它返回{ok,{Ref,Arguments},因此失败了 我怎样才能解决这个问题。这是我的代码: start_link(Period,SERVER,Args) when Period > 0, is_integer(

我遵循的是Hynek-Pichi-Vychodil给出的执行周期性任务的示例

我遇到了一个问题,因为我想将一些参数也传递给start_link函数,该函数将在我的do_task()函数中使用。但是,正如给定的那样,start_link/4需要返回{ok,Pid},在我的例子中,它返回{ok,{Ref,Arguments},因此失败了

我怎样才能解决这个问题。这是我的代码:

start_link(Period,SERVER,Args) when Period > 0, is_integer(Period) ->
    gen_server:start_link({local, SERVER}, ?MODULE, [Period,Args], []).


init([Period,Args]) ->
    StartT = erlang:monotonic_time(millisecond),
    self() ! tick,
    {ok, {StartT, Period,Args}}.

handle_call(_Request, _From, State) ->
    Reply = ok,
    {reply, Reply, State}.

handle_cast(_Msg, State) ->
    {noreply, State}.


handle_info(tick, {StartT, Period,Args} = S) ->
    Next = Period - (erlang:monotonic_time(millisecond)-StartT) rem Period,
    _Timer = erlang:send_after(Next, self(), tick),

    do_task(Args),
    {ok, S};

handle_info(_Info, State) ->
    {noreply, State}.
这里 期间->30000 参数是->{A,[A,b],'something'}

这是坠机日志

[error] gen_server '95ef60ae-b2fa-491a-821d-ffae85cc57f6' terminated with reason: bad return value: {ok,{-576460723187,30000,{A,[a,b],'something'}}


(答案以a给出。)

handle_info
()无法返回“ok”元组。抱歉,错过了这么简单的说明。非常感谢@pdexter。