gpt4 book ai didi

erlang - 停止 gen_server 时选择原因的语义是什么?

转载 作者:行者123 更新时间:2023-12-05 00:00:34 28 4
gpt4 key购买 nike

Erlang 文档说明了有关 gen_servers 的以下内容:

...

Note that for any other reason than normal, shutdown, or {shutdown,Term} the gen_server is assumed to terminate due to an error and an error report is issued using error_logger:format/2.



来源: http://www.erlang.org/doc/man/gen_server.html#Module:terminate-2

由于除了这三个原因之外的任何事情都被认为是错误的,我推断原因是 normal , shutdown{shutdown, Reason}被视为正常行为。

我想开发人员在选择这三个在正常情况下停止 gen_server 的原因时有一个动机,但我不太确定如何确定使用哪一个。

那么我应该什么时候使用 normal , shutdown{shutdown, Reason} ?

最佳答案

您应该使用 normal如果您的服务器已完成其工作并正常终止。
shutdown{shutdown, Reason}由主管进程在告诉他们的 child 终止时使用(例如,整个应用程序正在终止或监督树中的另一个进程已经死亡,这是一个 one_for_all 主管)。

我用 normal对于所有预期的终止和 {error, ErrorDescription}对于意外终止。

关于erlang - 停止 gen_server 时选择原因的语义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10016664/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com