【发布时间】:2011-09-22 11:00:03
【问题描述】:
有没有办法告诉一个gen_server:“主管已经初始化了所有的gen_servers,现在你可以发送消息了”?
我有一个工人 gen_server,他的工作是在他的监督树中设置其他 gen_servers 的状态。如果我刚开始在配置服务器的 init 函数中发送消息,有时它会得到 {noproc, _}。我想这意味着配置服务器很快:他在主管有足够的时间启动所有工作人员之前发送了消息。我通过将 timer:sleep(500) 放入 config_server:init() 来解决这个问题,这可以确保所有 gen_server 都有足够的时间来初始化,但这似乎是一个不优雅的解决方案。
有没有合适的方法来做到这一点?
【问题讨论】:
标签: erlang erlang-otp erlang-supervisor gen-server