मैं पहली बार पर्यवेक्षक को लागू करने पर काम कर रहा हूं और मैं उन मुद्दों पर चल रहा हूं जिन्हें मैं दस्तावेज़ीकरण से नहीं समझ सकता। विशेष रूप से, जब मैं SlowRamp.flood
का उपयोग करके अपनी प्रक्रिया शुरू करने का प्रयास करता हूं तो मुझे {:error, {:invalid_child_spec, []}}
मिलता है।Elixir: पर्यवेक्षित प्रक्रिया के लिए invalid_child_spec। यह पता नहीं लगा सकता कि
यह एक बहुत ही सरल एप्लीकेशन है और मिश्रण को नया slow_ramp --sup का उपयोग करके बनाया गया था।
मुख्य फ़ाइल ./lib/slow_ramp.ex
में है:
defmodule SlowRamp do
use Application
# See http://elixir-lang.org/docs/stable/elixir/Application.html
# for more information on OTP Applications
def start(_type, _args) do
import Supervisor.Spec, warn: false
children = [
worker(SlowRamp.Flood, [])
]
# See http://elixir-lang.org/docs/stable/elixir/Supervisor.html
# for other strategies and supported options
opts = [strategy: :one_for_one, name: SlowRamp.Supervisor]
Supervisor.start_link(children, opts)
end
def flood do
Supervisor.start_child(SlowRamp.Supervisor, [])
end
end
मेरे बच्चे समारोह/फ़ाइल ./lib/SlowRamp/flood.ex
में है और इस तरह दिखता है:
defmodule SlowRamp.Flood do
def start_link do
Task.start_link(fn -> start end)
end
defp start do
receive do
{:start, host, caller} ->
send caller, System.cmd("cmd", ["opt"])
end
end
end
किसी भी मदद की बहुत सराहना की जाएगी। धन्यवाद!
आह है Thats
, मैं गलत समझा था यह कैसे काम किया। धन्यवाद! मैं वास्तव में सहायता के लिए आभारी हूं! – kkirsche
बिल्कुल सही जवाब। हम यहां एरलांग पर्यवेक्षकों पर बहुत अधिक भरोसा कर रहे हैं ... हम बेहतर त्रुटि संदेश प्राप्त कर सकते हैं और एक दिन हम करेंगे (उम्मीद है!)। –