Supervisor-Bridges und gemischte Prozesshierarchien
Integrieren Sie Nicht-OTP-Prozesse und externe Subsysteme mit supervisor_bridge in Ihren Supervison Tree und bewahren Sie dabei die Fehlertoleranz.
Supervisor-Bridges und gemischte Prozesshierarchien ist eine kostenlose Erlang OTP: Distributed & Fault-Tolerant Systems Programming-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Erlang OTP: Distributed & Fault-Tolerant Systems Programming-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Erlang OTP: Distributed & Fault-Tolerant Systems Programming-Kurs umfasst insgesamt 4 Lektionen.
Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.
Why a Supervisor Bridge?
Not every process you depend on is a clean OTP gen_server. Sometimes you must supervise a plain Erlang process, a port, or a third-party subsystem. The supervisor_bridge behaviour lets such a process appear as a normal child in a supervision tree.
The Problem It Solves
A standard supervisor only knows how to start, stop and restart OTP-compliant children. A raw process started with spawn_link does not respond to OTP shutdown protocols. The bridge translates between the two worlds.
Behaviour Callbacks
A supervisor_bridge module implements two callbacks:
init/1starts the real subsystem and returns its pidterminate/2cleanly shuts the subsystem down
Skeleton Module
The bridge is started like a supervisor but behaves like a worker to its parent.
-module(legacy_bridge).
-behaviour(supervisor_bridge).
-export([start_link/0, init/1, terminate/2]).
start_link() ->
supervisor_bridge:start_link({local, ?MODULE}, ?MODULE, []).Implementing init/1
init/1 must start and link the external process, then return {ok, Pid, State}. If start fails, return {error, Reason}.
init([]) ->
case legacy_server:start() of
{ok, Pid} -> {ok, Pid, Pid};
Error -> Error
end.Implementing terminate/2
When the bridge is asked to shut down, it calls terminate/2 so you can stop the subsystem gracefully.
terminate(_Reason, Pid) ->
legacy_server:stop(Pid),
ok.Placing the Bridge in a Tree
To its parent supervisor, the bridge is just another child spec with type => worker.
ChildSpec = #{id => legacy,
start => {legacy_bridge, start_link, []},
restart => permanent,
type => worker}.Failure Propagation
Because the bridge links to the external process, a crash there exits the bridge, which the parent supervisor sees as a normal worker crash and restarts according to its strategy.
Mixed Hierarchies
A real system mixes gen_server workers, sub-supervisors, and bridges. The bridge lets legacy or foreign code participate without weakening the OTP guarantees of the rest of the tree.
When NOT to Use a Bridge
If you can wrap the subsystem in a proper gen_server, prefer that — it gives you full OTP introspection. Reserve the bridge for code you cannot rewrite or that has its own process lifecycle.
Debugging Bridged Subsystems
Because the inner process is not OTP, tools like sys:get_state/1 will not reach it. Add logging inside the subsystem and rely on the bridge state to track the inner pid.
Quick Check
Test your understanding of supervisor bridges.
Recap
You learned to integrate foreign processes into supervision trees:
supervisor_bridgewraps non-OTP subsystemsinit/1starts and links the subsystem;terminate/2stops it- It appears as a worker child to its parent supervisor
- Crashes propagate so normal restart strategies apply
- Prefer a real gen_server when you control the code
Lerne Erlang mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 12
- Lektionen
- 48
Häufig gestellte Fragen
Ist die Lektion „Supervisor-Bridges und gemischte Prozesshierarchien“ kostenlos?
Ja — der vollständige Text von „Supervisor-Bridges und gemischte Prozesshierarchien“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Erlang OTP: Distributed & Fault-Tolerant Systems Programming-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Erlang OTP: Distributed & Fault-Tolerant Systems Programming-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Supervisor-Bridges und gemischte Prozesshierarchien“?
Integrieren Sie Nicht-OTP-Prozesse und externe Subsysteme mit supervisor_bridge in Ihren Supervison Tree und bewahren Sie dabei die Fehlertoleranz. Du übst Erlang OTP: Distributed & Fault-Tolerant Systems Programming mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Erlang OTP: Distributed & Fault-Tolerant Systems Programming zu starten?
Keine Vorkenntnisse erforderlich. Erlang OTP: Distributed & Fault-Tolerant Systems Programming auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Supervisor-Bridges und gemischte Prozesshierarchien“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Erlang OTP: Distributed & Fault-Tolerant Systems Programming-Lektion Code schreiben und ausführen?
Ja. Jede Erlang OTP: Distributed & Fault-Tolerant Systems Programming-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Komplexe Supervisor-Bäume
- Dynamische Prozessverwaltung
- Fortgeschrittene Neustartstrategien
- Supervisor-Bridges und gemischte Prozesshierarchien