Моя терминология здесь может быть далека, поэтому не обращайте на меня внимания:
У нас есть несколько сценариев в стиле клиента, которые закодированы в php.
Некоторые из этих служб используют ftpдля отправки данных в удаленные местоположения.
То, как все настроено, происходит довольно часто:
a) Script start
b) Connect to ftp @ remote location
c) Send data
d) Close ftp connection
e) Terminate script
f) Return to A, repeat, within a short amount of time and send to the same target, but different data.
Проблема заключается в том, что накладных расходов довольно много (читай: замедление) из-за шага b, где он сначала должен подключиться к серверу ftp, войти в систему, убедиться, что папка существует, если она не создана, и т. д. и т. д.эти переводы в одиночные толчки ... Но это гораздо сложнее, чем это.Отсюда я упростил примерно 30-40 шагов.
Итак, я надеялся создать такую систему:
[ CRON CLI SCRIPT ] --->
[ LOCALLY HOSTED SOCKET BASED SERVER THAT KEEPS THE FTP CONNECTIONS OPEN ] --->
[ REMOTE FTP ]
С учетом вышеизложенного мы можем сохранить локально размещенный хостсервер на основе сокета работает, и соединения ftp открываются, и мы пропускаем самую длинную часть процесса, элементы, связанные с аутентификацией ftp.
При настройке системы «по одному» вPHP довольно тривиален, и раньше я никогда не делал его максимально приближенным к многопоточному.
Где, когда, сокет открывается (например, 127.0.0.1:10000), и несколько запросов могутЗаходите. При необходимости, «потомки» создаются, создаются новые ftp-соединения и т. д. и т. д.
Может кто-нибудь пролить свет на создание этого многопоточного кода в php, ИЛИ, если есть другое лучшее решение?Perl это вариант.Прошло много лет (ЛЕТ ...) с тех пор, как я прикоснулся к нему, но я уверен, что пара дней перед некоторыми хорошими документами приведут меня в достаточную скорость, чтобы это произошло.