首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么时候应该使用OTP行为而不是产卵?

什么时候应该使用OTP行为而不是产卵?
EN

Stack Overflow用户
提问于 2013-10-02 19:09:15
回答 1查看 437关注 0票数 9

我理解一个过程是如何工作的。我了解如何实现OTP行为,如gen-server等.

但我不清楚我什么时候会选择一种方法而不是另一种方法。

例如,塞萨里尼等。在Erlang编程中,通过生成进程、编写循环函数等方法,在p 240上实现数据库服务器。Joe Armstrong在p 196上的聊天客户端在编程中也产生了一个进程。

为什么这些不能更好地作为OTP服务器来实现呢?是为了教育目的吗?还是有合理的技术原因?

换句话说,什么经验法则会指导我实施一种方法而不是另一种方法?

非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-02 20:26:53

在上面的两个例子中,为了教育目的,简单生成的过程是首选的:这更容易解释,这些作者不需要解释OTP来传达他们想要教的东西,而且理解Erlang中的过程的概念也很重要。即使在遵循OTP规则的实际应用程序中,也不是所有进程都使用OTP行为实现并插入到监督树中。

经验法则很简单。通过回顾OTP所带来的内容(代码更改、容错等)来确定是否要遵循OTP的设计原则。或者您是否计划与OTP兼容的代码集成。如果您想要OTP所带来的任何特性,请遵循OTP原则,避免重新发明轮子。

如果您坚持OTP原则,并因此使用了gen_*行为,那么您应该对任何不需要被监督或代码升级的短寿命进程做一个简单的派生。它的使用时间不应超过部署发行版的时间(否则,您无论如何都需要soft_purge )。所有其他进程都必须插入到监视树中,并可能实现gen_*行为。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19144894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档