【发布时间】:2010-12-17 14:58:42
【问题描述】:
我有一个 Web 应用程序,它与外部服务器建立了许多 FTP 或 SFTP 连接。它的界面使用 AJAX,通过 AJAX 我在远程 FTP 服务器上获取文件列表并将其返回给客户端浏览器。
每次运行 AJAX 调用时,我都必须重新连接到远程服务器并重新进行身份验证。这需要大量额外的时间。
有没有办法以某种方式将 FTP 连接资源对象存储在一些公共内存池中,并在未来的 AJAX 调用中重新访问连接资源对象?我尝试了 Memcached,但似乎无法在其中存储连接资源。也许我可以将它们存储在一个线程中并以某种方式在那里访问它们?还有其他想法吗?
我总是可以让一个守护进程管理连接并充当代理,但这感觉有点过头了。
【问题讨论】:
-
我回答你的问题了吗...?
-
不幸的是,我认为这种方法行不通,因为我认为它不允许我保持 FTP 连接池处于活动状态并跨 httpd 进程重新访问它们。不过我可能错了……我还没有到可以编写原型的地步。如果我最终使用您描述的方法,我一定会回到这里并将您的建议标记为答案。不过,我可能最终会使用一个守护进程。
-
重点是你不需要一个“池”,每个工人只需要一个连接。工作人员一次只处理一个请求,因此只需要 1 个连接。如果您确实需要每个工作人员 2 个连接,您可以简单地在
on_event处理程序中建立 2 个连接而不是 1 个。 Worker 会停留一段时间,因此只要 Worker 停留,连接就会被重新使用,并且新的 Worker 也会导致新的连接。 -
投反对票的人是怎么回事?
标签: ajax resources ftp connection