Önceden yapılmış bir OTP uygulamasını kullanması gereken bir sistem yapıyorum (X olarak adlandırın). Yeni bir OTP uygulaması/modülü oluşturmak istiyorsam, örneğin bir modülde var olan uygulamayı nasıl kullanabilirim?Mevcut bir OTP uygulamasını başka bir uygulamada veya modülde kullanabilir miyim?
Ben application
davranışını izler beri, start
diyebiliriz varsayılır ve bu yüzden aşağıdaki kodu vardır minimalist bir uygulama Y inşa:
y.erl:
-module(y).
-behaviour(application).
start(_StartType, _StartArgs) ->
io:format("going to call x_app~n"),
{ok, _} = x_app:start([]),
io:format("called x_app~n"),
y:start_link().
stop(_State) ->
ok = x_app:stop([]),
ok.
İnşaat demiri bu derler kod başarıyla ve uyarı vermiyor. Hiç
rel/y/bin/y start
çıkışları şey rel/y/bin/y stop
çıkışları Node is not running!
Cevabınız için çok teşekkür ederim. Yani bu, 'x.app.src' parametresinin düzgün yapılandırılmasından sonra 'application: start (y).' Seçeneğini kullanırsam beklenen sonuçları göreceğimi ima eder. Muhtemelen x_app: start ([]). 'Satırlarını mı bırakmalıyım? – goncalotomas
Doğru, uygulamayı kendi kodunuzdan gösterdiğiniz gibi başlatmamalısınız. Eğer 'y'' x'’e bağlıysa, y y.app.src'’de 'y'' i listeledim ve normal Erlang sürümü başlangıç makineleri doğru sırada başlatıldığından emin olurlar. –
Uygulamayı durdurmaktan ne haber? 'Application: stop (y) .' x 'yi de sonlandırıyor mu? – goncalotomas