我正在使用 AngularJS 和 ASP.Net WebAPI 开发客户端单页应用程序 (SPA)。
SPA 的功能之一包括上传大型 CSV 文件,在服务器上对其进行处理,并将输出返回给用户。
显然,这种计算不能在线进行,因此我实现了一个 UploadController 负责接收文件,一个 PollingController 负责在计算完成时通知用户。
客户端应用程序每隔几秒钟监视一次 PollingController。
我没有消息队列方面的经验,但我的直觉告诉我,在这种情况下需要它们。
您建议如何以非阻塞、高效的方式实现此功能?
示例将受到高度赞赏
最佳答案
我过去曾为此使用过基于消息的服务总线框架。
您编写了一个应用程序(作为 Windows 服务运行),它监听通过事件总线广播的消息。
您的前端可以将这些消息发布到总线中。
.NET 中最流行的框架是 NServiceBus ,但它最近变得商业化。您也可以查看 MassTransit ,虽然这个文档很差。
您将执行的工作流程:
使用这样的框架的好处在于,如果您的服务出现故障,或者您重新部署它,任何处理都可以排队并恢复,因此您不会有任何停机时间。
关于ajax - ASP.Net Web API 中的消息队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18569361/