用户可以在我们的网络应用程序上执行一个操作,该操作需要100ms到10s的任何时间,我希望立即将结果返回到浏览器,然后在任务完成处理后将结果显示给用户.该操作是同步来自第三方的数据,并且被实现为类库(DLL).
通常建议使用像RabbitMQ或MSMQ这样的队列,并有一名工作人员将结果写入数据库,该数据库由浏览器的AJAX请求进行轮询,以检查更新.
然而,目的是减少延迟,使其尽可能地同步地运行任务,同时能够处理长时间运行的任务的尖峰而不影响网站的其余部分.
后端应该如何架构?在我看来,该过程将是:启动任务,以最小延迟运行任务,通知最终用户任务完成(ASAP),最后在浏览器中显示结果.
例子
使用http://www.xml-sitemaps.com/生成站点地图使用分块传输编码来发送< script>标记每秒钟调用一个Javascript函数来更新具有最新状态的页面.
使用https://www.ssllabs.com/ssltest/检查SSL证书似乎刷新整个页面并更新状态.