LINUX.ORG.RU

История изменений

Исправление 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