使用经典ASP(停止tutting),我需要构建一个应用程序,将高分辨率照片从一台服务器传输到另一台服务器,大约360,000,包括准确的缩略图。该应用程序将通过Windows计划调用,并将作为后台进程运行。
实现这一目标的最佳方法是什么,保持性能?我最后一次构建像这样的怪物脚本是为了超过一百万行传输和转换数据库表,应用程序启动速度非常快,但是经过25,000条记录之后它真的非常非常慢!所以我想避免这种情况。
显然这将是一个跨域转移,所以我考虑使用ASP / FTP组件,并逐个,抓取一个文件,发送它,并在数据库表中记录它的成功,所以它知道到目前为止做了什么。
最好一次处理一个文件并刷新,这样就不会滥用服务器的资源,或者我应该一次处理1000个还是更多?我希望它尽可能快,但不会堵塞服务器。
非常感谢任何帮助/建议。
答案 0 :(得分:1)
我认为最好一次执行一个文件,因为如果连接断开一段时间,您就不会丢失已发送的文件。
即使您使用的是ASP Classic,也可以利用.net在.net中使用FTP客户端类上传文件,避免购买/安装第三方组件。当然.net已经安装在服务器上了。
我的流程如下:
如果进程阻塞了服务器,您可以在每次上传之间暂停一下。
答案 1 :(得分:1)
我有类似的东西在Classic ASP中运行,它可以毫无问题地处理成千上万的图像。 在容纳图像的服务器上,我为每个图像运行一个(vbs)脚本
脚本连续运行,只检查每个文件夹和文件,如果文件存在于Web服务器上,如果没有创建它们,则不需要数据库。 在每次检查之间它会睡一秒钟。就像那样,服务器上的负载只有2%。我在命令行模式中使用iPhoto来提取元数据和图像,但您可以使用库。 因此,这三个文件存储在Web服务器上,位于第一台服务器的地图结构副本中,但没有完整大小的图像。
在网络服务器上,您只需要能够浏览缩略图并可视化元数据和中型图像。 如果用户需要全尺寸图像,则单击中等大小的文件,其中第一台服务器上的文件为url。
答案 2 :(得分:0)
超过360,000个单独交易的网络握手量将成为瓶颈。