2

イベントをサブスクライバーにディスパッチするイベント マネージャー プロセスがあります (http_session_created、http_session_destroyed など)。名前付きプロセスの代わりに Pid を使用すると、イベント マネージャーで動作するように関数に入れる必要がありますが、名前付きプロセスを使用すると、コードがより明確になります。

どのバリアントが正しいですか?

ありがとうございました!

4

2 に答える 2

6

プロセスに名前を付けるプロセスと実際の違いはありませんが、プロセスを登録するとグローバルになります。あなたは本質的に、ここが誰でも利用できるグローバルなサービスであることをシステムに伝えています。

あなたの説明からすると、ループ内でそれらを持ち運ぶための小さな労力を節約するために名前を付けているように聞こえます。この場合、あなたが持ち歩く他のすべての状態データと一緒に、それらの pid をレコードに入れます。これは、プロセスのタイプをより適切に示しています。

于 2009-10-26T23:31:51.073 に答える
2

「サブスクライバー」プロセスの固定セットがある場合は、登録済みの名前 IMO を使用します。

逆に、サブスクライバーが行き来するパブリッシュ/サブスクライブのようなアーキテクチャがある場合は、それらを追跡するためのインフラストラクチャが必要であり、この時点から、Pid() を使用するか名前を使用するかは問題ではありません。

登録済みの名前を使用することの欠点の 1 つは、「衝突」を避けるためにコード ベースでそれらを追跡する必要があることです。したがって、それはあなた次第です。個人的には、名前付きプロセスを好む傾向があります。あなたが言うように、コードを読みやすくするからです。いずれにせよ、OTP は気にしません。

于 2009-10-26T18:50:35.373 に答える