2016-03-31 19 views
0

Erlang'a yazılmış bir uygulamam var, dağıtım için bir denetleyici ekledim ve şimdi yönetici olarak configFile.cfg'yi ayrıştırdıktan sonra, yapılandırmayı eski uygulamamıza aktarmak istiyorum. ben şimdi böyle bir şey var:Erlang, modülden başka bir parametreye nasıl geçilir

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

neyi istediğim geçerli:

-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

lütfen açıklayınız. Bazı modülü çalıştıran daha fazla süreç oluşturmak için denetçi eklediniz mi? – user425720

+0

uygulama birçok çalışanı yürüten bir süpervizör başlattı. Sorun şu ki, birçok örneği başlatmak için scripts * .sh kullanıyoruz. Yaptığım şey, pek çok örneği erlang'dan başlatmak için bir gen_server ve bir super_supervisor eklemektir. ama benim yapılandırmam, süper_supervisor'umun her açılışında birçok kez ayrıştırıldı. (umutları temizle) – 47hm4n3

cevap

1

denetçiler altında denetçiler veya modüllerden uygulamaları başlatmak için yaygın değildir. Tercih edilen yol, tüm uygulamaların başlatıldığından ve doğru sırada olduğundan emin olmak için uygulama bağımlılığını kullanmaktır.

Ancak, yapılandırmayı birden çok kez ayrıştırmak zorunda kalmadan, bazı yapılandırmaların birkaç farklı uygulamadan kullanılabilir olmasını isterseniz, gproc kitaplığı aradığınız şey olabilir mi? Genel yapılandırmayı ve çok daha fazlasını verimli bir şekilde ayarlamak için gproc kullanılabilir. https://github.com/uwiger/gproc

Dağıtılmış bir ortamda bile.

+0

Hızlı cevap için teşekkürler, fakat sorun şu ki uygulama zaten var ve bunu bir proje için dağıtmam gerekiyor (ben öğrenciyim) ve Erlang'ı ilk kullanıyorum. Sadece yapılandırma ayrıştırmasını eski uygulamadan yenisine taşımak istiyorum. (ingilizce için özür dilerim). – 47hm4n3

+0

Yapılandırmayı geçmek için tek yol uygulama başlatma işlevidir? Bu durumda büyük olasılıkla başka bir yerden başlayıp süpervizörden başlamazdım. Denetim otoriteleri genellikle aynı uygulama içindeki süreçleri başlatmak ve denetlemek içindir. Öğretmenlerin burada başka bir şey yapmanı isteyebileceğini hissediyorum. Muhtemelen onlarla kontrol etmelisiniz. – dvaergiller

İlgili konular