2
我正在研究库存标准的ASP.NET MVC 3 Web应用程序(托管在IIS 7上)。该网站允许用户上传照片等等。关于图像处理体系结构的设计建议
上传过程如下:
- 用户利用插件(目前plupload)从他们的PC选择文件。
- AJAX调用发生到我的服务器,在HTTP POST图像(Request.Files)
- 服务器重新调整
- 每个大小的照片被上传到亚马逊S3
目前的时代照片氮量,以上是使用.NET 4.0的TPL实现的“随火随忘”技术。
我想使上述更加灵活和健壮。例如,如果图像处理失败(它使用GDI,所以很可能)或S3关闭(发生这种情况),我或用户不会知道它。
我在考虑托管WCF服务作为Windows服务,它轮询图像的文件夹。
我的主要网站只是将图像FTP到“观看”文件夹,然后该服务将负责图像处理和上传。
用户不需要立即通知该照片已完成。换句话说,现在我们显示“您的图片正在处理中,并且很快就可以使用”消息。
综上所述,该服务需要:
- 调整图像
- 将图像上传到S3
- 读/写数据库
- 能力 “重试” 失败的图像
有什么建议吗?是FileSystemWatcher一个不错的选择?
好的建议,欢呼!几个问题。 1.你可以扩展“相对成功”吗?什么地方出了错? 2.如果你不得不再次做这项工作,你会再次做同样的事情吗? 3.你是如何主持应用程序? WCF(如果是这样,什么类型的绑定,例如TCP/HTTP)?普通的旧windows服务? – RPM1984
1.我们在重负载情况下的性能出现问题;在我们重新实现多线程/排队之后,大部分情况都消失了。 2.是的。经过一些试验和错误之后,我们实现了一个非常稳定的系统,可以通过一些业务逻辑操作实现可靠的数据传输。 3.它实际上是两个在客户端和服务器上通过WCF链接工作的镜像(普通的老式)windows服务。 FileSystemWatcher部分是双方的输入点之一(其中DB是另一个)。 –
太棒了。干杯! – RPM1984