[erlang-questions] Issue while starting same worker(gen_server) multiple times in Supervisor

harsha sri <>
Thu Mar 26 17:59:15 CET 2015


Hi Rad,

First of all Thank you so much for immediate reply.

uclient worker start method:



-module(uclient_worker).
-behaviour(gen_server).

-export([start_link/1]).

-export([init/1, handle_call/3, handle_cast/2, handle_info/2,
         terminate/2, code_change/3]).

-export([fire/0]).

-export([add_subscriber/4, spawn_subscriber/3]).

-include_lib("amqp_client/include/amqp_client.hrl").

-record(state, {channel,java_port :: port(),java_node ::
atom(),queuen,nofs}).

-define(RKFormat,
        "~4.10.0B.~2.10.0B.~2.10.0B.~1.10.0B.~2.10.0B.~2.10.0B.~2.10.0B").


start_link(Pars) ->
    %%file:write_file("/tmp/rabbit.txt", Pars, [append]),
    gen_server:start_link({global, ?MODULE}, ?MODULE, Pars, []).

%---------------------------
% Gen Server Implementation
% --------------------------

init(Pars) ->


Regarding to CHILD in supervisor:

actually my initial supervisor is :
%%%%%%%%
-module(uclient_sup).

-behaviour(supervisor).

-export([start_link/0, init/1]).

start_link() ->
    supervisor:start_link({local, ?MODULE}, ?MODULE, _Arg = []).

init([]) ->
    {ok, {{one_for_one, 1, 10},
          [{uclient_worker,
            {uclient_worker, start_link, [{<<"callmgr">> , 3}]},
            permanent,
            10,
            worker,
            [uclient_worker]}
          ]}}.
%%%%%%%%%%%%%


But i changed above code for invoking multiple worker under supervisor
based on conditions.
In that process i just changed code using CHILD.

Regards,
Harsha



On Thu, Mar 26, 2015 at 9:41 PM, Rad Gruchalski <>
wrote:

>  Can you show start_link of the uclient_worker?
>
>  Kind regards,
> Radek Gruchalski
>  <>
> de.linkedin.com/in/radgruchalski/
>
>
> *Confidentiality:*This communication is intended for the above-named
> person and may be confidential and/or legally privileged.
> If it has come to you in error you must take no action based on it, nor
> must you copy or show it to anyone; please delete/destroy and inform the
> sender immediately.
>
> On Thursday, 26 March 2015 at 15:49, harsha sri wrote:
>
> Hi,
>
> I am trying to start same worker multiple times in Supervisor but its
> giving me error.
> Here is my Supervisor:
>
>
> -module(uclient_sup).
>
> -behaviour(supervisor).
>
> -export([start_link/0, init/1]).
>
> -define(
>    CHILD(Name, Args),
>    {Name, {
>        uclient_worker, start_link, [{<<"callmgr">> , 3}]
>        }, permanent, 5000, worker, []
>    }
> ).
>
> start_link() ->
>     supervisor:start_link({global, ?MODULE}, ?MODULE, _Arg = []).
>
> init([]) ->
>    Children = [?CHILD("uc1", Address), ?CHILD("uc2", Address)],
>    {ok, { {one_for_one, 6, 10}, Children }}.
>
> I am getting below error:
>
> Error: {could_not_start,uclient,
>            {{shutdown,
>
> {failed_to_start_child,"uc2",{already_started,<5169.429.0>}}},
>             {uclient,start,[normal,[]]}}}
>
>
> Please help me in solving this issue. I am new to erlang.
>
> Thanks & Regards,
> SriHarsha.
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20150326/74200122/attachment.html>


More information about the erlang-questions mailing list