Какой хороший способ сохранить состояние при перезапуске сбойного процесса?
У меня есть супервизор в приложении OTP, который наблюдает за несколькими "подсистемами" gen_servers.
Например, одна из них - это подсистема «погода», которая генерирует новое состояние погоды каждые 15 минут и обрабатывает запросы для текущего состояния погоды. (Вспомните игру с лимонадом)
Если сбой этого gen_server, я хочу, чтобы он был перезапущен, но он должен быть перезапущен с последним погодным состоянием, а не с произвольным состоянием, жестко заданным в init()
. Для состояния симуляции не имеет смысла внезапно переходить от «града» к «приятному и свежему» только из-за аварии.
Я не решаюсь использовать mnesia или ETS для хранения состояния после каждого обновления из-за дополнительной сложности; Есть ли более простой способ?