Лига / SFTP Соединение закрыто преждевременно

У меня есть долгоживущий процесс, контролируемый супервизором, написанный на php, это команда Laravel, которая прослушивает канал redis. Он передает данные из канала на другой сервер через SFTP, используя библиотеку leagure/sftp, когда данные поступают. Проблема в том, что он работает нормально только в течение примерно 12 часов после запуска процесса и после этого начинает возвращать следующую ошибку:

Файл: /var/www/html/hub/vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php

Линия: 3416

Код: 0

Сообщение: соединение закрыто преждевременно

Процесс требует перезапуска, чтобы нормально работать еще 12 часов.

Ребята, у вас есть идеи?

2 ответа

Решение

Проблема решается путем повторного подключения каждый раз перед доступом к SFTP-серверу:

/**
             * @var \Illuminate\Filesystem\FilesystemAdapter $disk
             */

            $adapter = $disk->getDriver()->getAdapter();
            $adapter->disconnect();
            $adapter->connect();

Это та же тема здесь или нет?

[Perl] [net:: ssh2] Как сохранить соединение ssh при выполнении удаленной команды

Другим решением является повторная авторизация на сервере до 12 часов.

Другие вопросы по тегам