TLDR: существует ли повторно используемый код для автоматического повторного подключения к TCP-серверу, который иногда дает сбой?
Я пишу серверное приложение — назовем его hal
— которое также открывает некоторые соединения TCP с другими серверами — среди них xbmc
. Первоначально я написал его таким образом, чтобы при сбое xbmc
процесс xbmc
erlang останавливался и впоследствии перезапускался его супервизором.
Судя по всему, это не лучший способ создания постоянных TCP-соединений в erlang. Во-первых, на самом деле это не работает: при сбое xbmc
процессы перезапускаются слишком быстро, и супервизор закрывает всю программу hal
. Во-вторых, я, по-видимому, не должен использовать для этого супервизора: Стратегия супервизора Erlang для перезапуска подключений к отключенным хостам (насколько я читал, этот связанный вопрос отвечает только на вопрос «решает ли супервизор это?» и не является дубликатом моего вопроса)
Я думаю, что это звучит как достаточно распространенный вариант использования, поддерживающий максимально возможное соединение TCP даже с хостом, который время от времени отключается. Есть ли какой-то OTP или другой библиотечный код, который я должен использовать для достижения этой цели?