我有事件管理器进程将事件分派给订阅者(例如http_session_created,http_sesssion_destroyed)。如果使用Pid而不是命名进程,我必须将其放入函数中以使用事件管理器,但如果使用了Named进程,代码将更加清晰。

哪种变体是对的?

谢谢!

有帮助吗?

解决方案

虽然命名流程的流程没有实际差异,但注册流程会使流程全局化。从本质上讲,您告诉系统这是一个任何人都可以使用的全局服务。

从你的描述中听起来更像你给他们的名字,以节省你在循环中携带它们的小小的努力。如果是这种情况,我会将他们的pid放在一个记录中,其中包含您携带的所有其他状态数据。这更好地表明了流程的类型。

其他提示

如果您有一组固定的“订阅者”,进程,然后使用注册名称IMO。

相反,如果您有一个发布/订阅类型的架构,订户来去,那么您需要一个基础架构来跟踪这些,从这一点来说,如果您使用Pid()或名称并不重要

使用注册名称的一个缺点是您需要在代码库中跟踪它们以避免“冲突”。所以这取决于你:就个人而言,我倾向于支持命名流程,就像你说的那样,它使得阅读代码更加清晰。不管怎样,OTP并不关心。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top