Uri*_*ren 7 ajax asp.net-mvc msmq polling asp.net-web-api
我正在使用AngularJS和ASP.Net WebAPI开发客户端单页面应用程序(SPA).
SPA的一个功能包括上载大型CSV文件,在服务器上处理它,以及将输出返回给用户.
显然,这种计算不能在线完成,因此我实现了一个负责接收文件的UploadController,以及一个负责在计算完成时通知用户的PollingController.
客户端应用程序每隔几秒钟监视一次PollingController.
我没有消息队列的经验,但我的直觉告诉我他们在这种情况下是必需的.
您如何建议以非阻塞,高效的方式实现此功能?

举例将受到高度赞赏
我过去曾使用过基于消息的服务总线框架.
您编写一个应用程序(作为Windows服务运行),用于侦听通过事件总线广播的消息.
您的前端可以将这些消息发布到总线中.
.NET中最流行的框架是NServiceBus,但它最近变得商业化.您也可以查看MassTransit,虽然这个文档很差.
您将要执行的工作流程:
关于使用这样的框架的好处是,如果您的服务出现故障,或者您重新部署它,任何处理都可以排队和恢复,因此您不会有任何停机时间.
对于长时间运行的操作,您需要单独的Windows服务应用程序(或者工作者角色,如果它是Windows Azure).IIS可能会在池回收时终止ASP.NET进程,并且您的操作将无法完成.
消息队列主要用于通信.您可以在Web和工作器部件之间使用它.但除非您的数据不是超级关键,否则不需要它.您可以使用数据库,缓存,文件系统或其他100种方式建立通信:)
您可以使用SignalR通知您的客户完成处理.
| 归档时间: |
|
| 查看次数: |
5861 次 |
| 最近记录: |