2016-03-31 18 views
0

私はアプリケーションをerlangで書いています。私はスーパーバイザを配布用に追加しました。そして、スーパーバイザでconfigFile.cfgを解析した後、私は古いアプリケーションに設定を渡します。 私は今、このような何かを持っている:モジュールから別のモジュールにパラメータを渡す方法

-module(supervisor_sup). 
start() -> 
    application_app:start(). 

私は何を望むのである:

-module(supervisor_sup). 

-record(config,{param1,param2}). 
%After parsing the configFile.cfg 
Conf = #config{param1 = Param1, 
      param2 = Param2}, 

start(Conf) -> 
    application_app:start(Conf). 
+0

を明記してください。スーパーバイザを追加して、モジュールを実行しているプロセスをさらに作成しましたか? – user425720

+0

アプリケーションは、多くのワーカーを実行するスーパーバイザを起動します。問題は、スクリプト* .shを使用して多くのインスタンスを起動することです。私がしたことは、gen_serverとsuper_supervisorを追加して、erlangから多くのインスタンスを起動することです。しかし、私の設定は、私のsuper_supervisorが起動するすべてのインスタンスで何度も解析されています(より明確になりたい) – 47hm4n3

答えて

1

上司の下で上司やモジュールからアプリケーションを起動することが一般的ではありません。アプリケーションの依存関係を使用して、すべてのアプリケーションが正しい順序で開始されるようにすることをお勧めします。

しかし、設定を何度も解析することなく、いくつかの異なるアプリケーションからいくつかの設定を利用できるようにするには、おそらくgprocライブラリがあなたの探しているものでしょうか? https://github.com/uwiger/gproc

gprocを使用すると、グローバル設定などを効率的に設定できます。分散環境でさえも。

+0

早速答えてくれてありがとうございましたが、問題はアプリケーションが既に存在していて、 )、Erlangを使うのは初めてです。私はちょうど古いアプリケーションから新しいものに構成解析を移動したいです。 (私の英語を謝る)。 – 47hm4n3

+0

設定を渡す唯一の方法は、アプリケーションの開始機能です。その場合、私はおそらく監督からではなく、どこかから始めるだろう。監督者は、一般に、同じアプリケーション内でプロセスを開始し、監督するためのものです。あなたの先生がここで何か他のことをしてもらいたい気持ちがあります。あなたはおそらく彼らと確認する必要があります。 – dvaergiller

関連する問題