我正在研究Web应用程序排队的概念(即将某些类型的作业放在队列中以便由单独的工作人员完成,而不是在Web请求周期中完成)。ASP.NET MVC排队解决方案
我想知道是否有什么好的解决方案可以在ASP.NET MVC环境中使用。
有没有人有过(好的或坏的)经历?
谢谢!
UPDATE:
只是为了澄清,我不是在谈论排队传入的请求。我会尽量说明我的意思......
1)标准情况:
- 从浏览器请求
- 服务器处理开始
- 长作业开始
- 长时间完成
- 服务器处理完
- 响应返回给浏览器
2)我在寻找到什么:
- Requsest从浏览器
- 服务器处理开始
- 放置在长工作队列
- 服务器处理完
- 响应返回给浏览器
而在另一个进程(在发送响应可能后):
- 从队列中取出长工作
- 长期作业开始
- 长期工作已完成
在第一个例子中,用户已经等待很长一段时间服务器resoponse,在第二个很快。
当然有某些类型的工作适合这个,有些是不适合的。
UPDATE2:
客户端不必与长作业的结果会立即更新。只要用户碰巧刷新一个页面(在完成作业之后),这些更改就会显示在应用程序中。
想想堆栈溢出中发生的一些事情 - 它们不会立即在应用程序的每个部分中更新,但是这种情况发生得相当快 - 我怀疑其中一些作业正在排队。
队列由IIS完成。每个请求都被放入由工作进程处理的队列中。工作进程和请求/响应处理的维护由IIS完成。为什么实施第二个排队机制? – Christian13467 2009-08-31 12:00:11
@ Christian13467:我在谈论一个不同的概念 - 请参阅更新中的说明。 – UpTheCreek 2009-08-31 13:05:00