アーランのイベントマネージャープロセス。名前付きプロセスまたはPid?
質問
サブスクライバーにイベントをディスパッチするイベントマネージャープロセスがあります(http_session_created、http_sesssion_destroyedなど)。名前付きプロセスの代わりにPidを使用する場合、イベントマネージャーで動作する関数にそれを配置する必要がありますが、名前付きプロセスを使用する場合、コードはより明確になります。
正しいバリアントはどれですか?
ありがとう!
解決
プロセスの命名、登録、プロセスの違いは実際にはありませんが、グローバルになります。本質的には、ここで誰でも使用できるグローバルサービスであることをシステムに伝えています。
あなたの説明から、ループでそれらを持ち歩くための小さな労力を節約するために名前を付けているように聞こえます。この場合、他のすべての状態データとともに、pidをレコードに入れます。これは、プロセスのタイプをはるかによく示しています。
他のヒント
"購読者"の固定セットがある場合プロセス、登録名IMOを使用します。
逆に、購読者が行き来するパブリッシュ/サブスクライブのアーキテクチャがある場合は、それらを追跡するインフラストラクチャが必要であり、この時点からPid()または名前を使用しても問題はありません。
登録名を使用する場合の欠点の1つは、「衝突」を回避するためにコードベースでそれらを追跡する必要があることです。個人的には、名前付きプロセスを好む傾向があります。これは、あなたが言うように、コードを読みやすくするためです。いずれにしても、OTPは気にしません。
所属していません StackOverflow