我有一個啓動simple_one_for_one子項的主管。實際上,每個孩子都是擁有自己的樹的主管。每個孩子都有一個獨特的ID,所以我可以區分它們。Simple_one_for_one應用程序
-define(SERVER(Id), {global, {Id, ?MODULE}}).
start_link(Id) ->
gen_server:start_link(?SERVER(Id), ?MODULE, [Id], []).
所以,每個gen_server可以輕鬆地與全球{{標識,MODULE_NAME}} addresed:每個gen_server然後用START_LINK(同上),其中啓動。
現在我想讓這個孩子的主管進入申請。所以,我媽媽的主管應該開始申請而不是主管。這應該很簡單,除了一部分:將ID傳遞給應用程序。啓動具有ID的主管很容易:主管:start_child(?SERVER,[Id])。我該如何處理應用程序?我怎樣才能用不同的ID啓動幾個同名的應用程序(這樣我就可以訪問相同的.app文件)(所以我可以用監督員啓動我的孩子:start_child(?SERVER,[Id]))?
如果我的問題不夠清楚,這裏是我的代碼。所以,目前,es_simulator_dispatcher開始es_simulator_sup。我想這樣做:es_simulator_dispatcher啓動es_simulator_app啓動es_simulator_sup。這是所有有給它:-)
由於提前, dijxtra
是的,你是對的......在Erlang看來,不可能做我想做的事情。可憐。 – dijxtra