我有一个用户可以上传照片的网络应用程序。我有一个运行的Windows服务,它可以上传照片并将其裁剪成不同的大小。它以指定的间隔运行。裁剪后,用户可以看到照片。因此,一旦用户上传照片并且照片裁剪器尚未运行,他们将无法看到照片。由于这种行为,用户认为上传照片时出现了一些错误,他们会一次又一次地上传。
任何人都可以向我建议一些排队机制,当用户上传排队的照片时,立即运行照片。
我正在使用asp.net& C#。
如果我感到困惑,请告诉我。
答案 0 :(得分:2)
使用NService总线是我认为的最佳选择。使用NService总线,您可以在队列中尽快处理消息。您也可以将NService应用程序作为窗口服务托管。 NSerivice Bus
答案 1 :(得分:1)
Microsoft Message Queue(MSMQ)在.Net中可以原生使用。只要您拥有包含公共接口/具体实现的共享DLL,您就可以传入自己的类型并在Windows服务中读取它们。
显然它需要安装在服务器上,但通常是默认安装的一部分。
答案 2 :(得分:0)
就个人而言,我认为你要做的是 - 裁剪上传的照片,不应该花太长时间,而且正如有人在问题评论中建议的那样,你是否需要创建基础设施的开销工作是否由另一个应用程序排队并在进程外处理?这会发生很多(每秒/分钟有多少照片裁剪请求?)。相反,你不能只是通过AJAX将请求发送到服务器,并在浏览器上有某种形式的“请等待”动画,直到请求最终返回并且照片被裁剪?
如果您确实认为需要采用排队方式,那么我建议使用MSMQ,因为使用它非常简单 - 请参阅示例代码here