我正在设计一个托管在 Azure 中的 ASP.NET Web 应用程序。我计划调整用户在服务器端上传的图像大小。我有一个库可以做到这一点,但目前这发生在主要的 Web 前端 VM 中。我想将此卸载到工作虚拟机。我了解使用队列执行此操作的模式,但我不想在任务完成之前返回给用户,因为我计划在处理请求完成后显示调整大小的图像。那么,如何卸载将同步执行的任务?(这意味着在远程任务完成之前我不会从呼叫站点返回。)
谢谢...
-本
我正在设计一个托管在 Azure 中的 ASP.NET Web 应用程序。我计划调整用户在服务器端上传的图像大小。我有一个库可以做到这一点,但目前这发生在主要的 Web 前端 VM 中。我想将此卸载到工作虚拟机。我了解使用队列执行此操作的模式,但我不想在任务完成之前返回给用户,因为我计划在处理请求完成后显示调整大小的图像。那么,如何卸载将同步执行的任务?(这意味着在远程任务完成之前我不会从呼叫站点返回。)
谢谢...
-本
在 Web 服务器上保持线程通常不是一个好主意。这会对可扩展性产生负面影响。
考虑使用 UI JQuery 定期检查图像是否已准备好显示。您所要做的就是每隔一秒左右检查一次图像是否存在。有几种方法可以做到这一点;在一种实现中,客户端提前知道图像的名称并尝试读取它(例如 Blob);在另一种情况下,UI 不知道名称,但会检查 Azure 表中指示图像创建状态的记录。
您可以在此处执行类似于我们在 WebJobs 示例中所做的操作:http: //aspnet.codeplex.com/SourceControl/latest#Samples/AzureWebJobs/PhluffyShuffy/PhluffyShuffyWeb/Views/Shuffle/Index.cshtml
我们有一个非常相似的应用程序:处理图像并在完成后显示它。为此,我们只是使用 JavaScript 汇集结果 blob。