我研究了 Web 应用程序排队的概念(即将某些类型的作业放入队列中以由单独的工作人员完成,而不是在 Web 请求周期中完成)。
我想知道是否有任何可以在 ASP.NET MVC 环境中使用的好的解决方案。
有没有人有任何(好的或坏的)经历?
谢谢!
更新:
澄清一下,我不是在谈论排队传入的请求。我将尝试说明我的意思...
1)标准情况:
- 来自浏览器的请求
- 服务器处理开始
- 漫长的工作开始
- 漫长的工作完成了
- 服务器处理完毕
- 响应返回到浏览器
2)我正在调查的内容:
- 来自浏览器的请求
- 服务器处理开始
- 排在队列中的长作业
- 服务器处理完毕
- 响应返回到浏览器
在另一个过程中(可能在发送响应之后):
- 从队列中取出的长时间工作
- 漫长的工作开始
- 漫长的工作完成了
在第一种情况下,用户等待服务器响应很长时间,在第二种情况下它很快。
当然,某些类型的工作适合此,有些则不适合。
更新2:
客户端不必立即使用长期工作的结果进行更新。只要用户碰巧刷新页面(当然是在作业完成之后),这些更改就会在应用程序中显示出来。
想想堆栈溢出中发生的一些事情——它们不会在应用程序的每个部分立即更新,但这发生得很快——我怀疑其中一些作业正在排队。