【发布时间】:2010-10-25 04:23:19
【问题描述】:
在重启崩溃的进程时有什么好的方法来保持状态?
我在 OTP 应用程序中有一个主管,负责监视多个“子系统”gen_server。
例如,一个是“天气”子系统,它每 15 分钟生成一个新的天气状态并处理对当前天气状态的查询。 (想想柠檬水摊游戏)
如果该 gen_server 崩溃,我希望它重新启动,但它应该以最近的天气状态重新启动,而不是在 init() 中硬编码的任意状态。仅仅因为坠机,模拟状态突然从“冰雹风暴”变成“轻松愉快”是没有意义的。
由于增加了复杂性,我犹豫是否在每次更新后使用 mnesia 或 ETS 来存储状态;有没有更简单的方法?
【问题讨论】:
标签: erlang crash state exit erlang-supervisor