gpt4 book ai didi

erlang - gen_server 启动了吗?

转载 作者:行者123 更新时间:2023-12-01 02:47:51 26 4
gpt4 key购买 nike

有没有办法告诉 gen_server:“主管已初始化所有 gen_servers,现在您可以发送消息”?

我有一个 worker gen_server,他的工作是在他的监督树中设置其他 gen_servers 的状态。如果我刚开始在我的配置服务器的 init 函数中发送消息,有时它会得到 {noproc, _}。我想这意味着配置服务器太快了:他在主管有足够的时间启动所有工作人员之前发送了消息。我通过将 timer:sleep(500) 放在 config_server:init() 中来解决这个问题,这确保所有 gen_server 都有足够的时间进行初始化,但这似乎是一个不雅的解决方案。

有没有合适的方法来做到这一点?

最佳答案

返回超时元组 0来自 init .然后在它返回后立即,handle_info(timeout, State)将被调用。在 handle_info进行一些在主管完成初始化之前不会返回的调用(例如 supervisor:which_children )。

关于erlang - gen_server 启动了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6475450/

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