首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置gen_server类型应用程序的状态

设置gen_server类型应用程序的状态
EN

Stack Overflow用户
提问于 2012-03-19 16:42:39
回答 1查看 158关注 0票数 1

我正在尝试找出是否可以在给定状态下启动gen_server。

我希望能够设置一个监视器/监控器,以便在服务器崩溃时重新启动服务器,使其具有最后一个有效状态。

任何关于如何解决这个问题的建议都将非常受欢迎。

到目前为止,我唯一的想法是有一个特殊的handle_call/3,它在被调用时将服务器状态更改为所需的状态,但我希望避免修改服务器模块,并在可能的情况下完全从我的监视器/监控器进程处理此问题。

谢谢您抽时间见我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-19 16:47:39

gen_server:init采用参数Args。您可以传递任何想要的状态,并将其设置为服务器的状态。您可以将Args传递给start_link,它会为您将其传递给init。

http://www.erlang.org/doc/man/gen_server.html#Module:init-1

http://www.erlang.org/doc/man/gen_server.html#start_link-3

我认为在您的情况下,您可能希望将状态存储在记忆中。这样,您就不必考虑将最后一个有效状态传递给gen_server。如果你不想开始记忆,你可以使用ETS。在一些不会死的进程中创建公共ETS,并在您的gen_server中使用它(请注意,当创建ets的服务器死掉时,ets将被销毁)

http://www.erlang.org/doc/man/ets.html

http://www.erlang.org/doc/man/mnesia.html

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

https://stackoverflow.com/questions/9767127

复制
相关文章

相似问题

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