Если компонент gen_server имеет критическое состояние или состояние, которое не может быть пересчитано / повторно собрано, я обычно избегаю сохранять состояние в самом gen_server.Вместо этого я предпочитаю поддерживать состояние во внешней таблице процессов.Если вы придерживаетесь этого подхода, убедитесь, что таблица ets либо создана внешним процессом (который, как вы уверены, не умрет), например, процесс приложения - или - создайте таблицу ets в методе initgen_server и используйте метод "ets: give_away / 3", чтобы передать его внешнему процессу (конечно, вам нужно проверить, создана ли таблица в методе init gen_server). В противном случае таблица ets будет уничтожена.когда процесс умирает ..