Модуль
ftp
имеет два типа timeout
, оба установлены во время инициализации услуги ftp
.
Вот выдержка из документации:
{timeout, Timeout}
Тайм-аут соединения. По умолчанию 60000
(миллисекунды).
{dtimeout, DTimeout}
Тайм-аут подключения к данным. Время ожидания клиентом подключения сервера к сокету данных. По умолчанию infinity
.
Время ожидания подключения к данным имеет значение по умолчанию infinity
, что означает, что он будет зависать, если возникнут какие-либо проблемы с сетью. Чтобы преодолеть эту проблему, я бы посоветовал вам установить это значение несколько значимым и соответствующим образом обработать время ожидания в вашем приложении.
{:ok, pid} = :ftp.start_service(
host: '...', timeout: 30_000, dtimeout: 10_000
)
:ftp.send(pid, '#{local_path}', '#{remote_path}')