История изменений
Исправление ergo, (текущая версия) :
можно использовать стратегию Permanent, но у вас проблема в другом
// making subscription using MonitorEvent of the gen.Process interface
if _, err := a.MonitorEvent(eventName); err != nil {
return err
}
если имя ивента указано неверно (в общем-то в логах по-моему как раз тот случай ибо ошибка «no route»), то return err - это терминация актора с ошибкой. Супервизор пытается рестартануть, но у него выставлены лимиты - 2 рестарта в теч 5 секунд, поэтому он отключает чилда.
измените логику обработки ситуации когда не получается выставить монитор
ЗЫ если любой из колбеков актора возвращает ошибку, то это терминирует актор https://docs.ergo.services/basics/process#process-termination
про супервизор, его типы и стратегии рестарта - https://docs.ergo.services/actors/supervisor
Исходная версия ergo, :
можно использовать стратегию Permanent, но у вас проблема в другом
// making subscription using MonitorEvent of the gen.Process interface
if _, err := a.MonitorEvent(eventName); err != nil {
return err
}
если имя ивента указано неверно (в общем-то в логах по-моему как раз тот случай ибо ошибка «no route»), то return err - это терминация актора с ошибкой. Супервизор пытается рестартануть, но у него выставлены лимиты - 2 рестарта в теч 5 секунд, поэтому он отключает чилда.
измените логику обработки ситуации когда не получается выставить монитор
ЗЫ если любой из колбеков актора возвращает ошибку, то это терминирует актор https://docs.ergo.services/basics/process#process-termination