关于使用php遍历多个FTP连接的建议


advice on using php to loop through multiple FTP connections

我正在寻找关于其他开发人员如何完成相同任务的一些建议。实际上,我要做的是循环遍历数据库中的行,连接到多个FTP帐户preg_match,然后分别输出文件。下面是一个工作流程的例子:

pull connection 1
login to FTP
check preg_match against all files listed
list matching files
disconnect
...
pull connection 2
login to FTP
check preg_match against all files listed
list matching files
disconnect
...
repeat

最终结果将是我创建一个表,结果彼此分开。

我认为这里最大的挑战是延迟时间。我会寻找一个解决方案,不试图做这一切在实时,而有人正在等待网页加载或其他输出。如果可能的话,我会在远程服务器上构建一些API,这样我就不必执行原始FTP请求,而是可以查询远程服务器上确定的匹配结果。但是,如果需要的话,我会使用PHP的cURL工具,在每个外部服务器自己的cron驱动脚本中独立地与每个外部服务器建立连接,并将所有输出存储到中央数据库中。然后,可以独立于获取/匹配,在本地数据库中查询所需的最终输出。

如果要建立许多FTP连接,并且考虑到性能,那么您将希望并行而不是串行地建立连接。要做到这一点,需要生成执行该工作的子进程,将它们的结果保存到DB中,而父进程在从DB获取结果并输出结果之前等待创建足够的结果。