Frage

Ich habe einen Event Manager -Prozess, der Ereignisse an Abonnenten sendet (z. B. http_session_Created, http_sesion_destroyed). Wenn PID anstelle eines genannten Prozesses verwendet wird, muss ich ihn in Funktionen einsetzen, um mit Event Manager zu arbeiten, aber wenn benannte Prozess verwendet wird, ist der Code klarer.

Welche Variante stimmt?

Vielen Dank!

War es hilfreich?

Lösung

Während der Prozess, der einen Prozess nennt, keinen tatsächlichen Unterschied gibt, macht es global, ihn zu registrieren. Sie erzählen dem System im Wesentlichen, dass hier ein globaler Service ist, den jeder nutzen kann.

Aus Ihrer Beschreibung klingt es mehr so, als würden Sie ihnen Namen geben, um die kleinen Anstrengungen zu speichern, sie in Ihrer Schleife herumzutragen. Wenn dies der Fall ist, würde ich ihre PIDs mit allen anderen staatlichen Daten, die Sie mit sich bringen, in eine Aufzeichnung bringen. Dies gibt den Typ der Prozesse viel besser an.

Andere Tipps

Wenn Sie einen festen Satz von "Abonnenten" -Prozessen haben, verwenden Sie registrierte Namen IMO.

Wenn Sie im Gegenteil eine Art Architektur veröffentlichen/abonnieren, in der Abonnenten kommen und gehen, benötigen Sie eine Infrastruktur, um diese zu verfolgen, und ab diesem Zeitpunkt spielt es keine Rolle, ob Sie PID () oder Namen verwenden.

Einer der Nachteile der Verwendung registrierter Namen ist, dass Sie sie in Ihrer Codebasis verfolgen müssen, um "Kollisionen" zu vermeiden. Es liegt also an Ihnen: Persönlich neige ich dazu, benannte Prozesse zu bevorzugen, wie es, wie Sie sagen, das Lesen des Codes klarer macht. Auf die eine oder andere Weise ist OTP egal.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top