ASP.NET MVC的排队解决方案

UpT*_*eek 7 asp.net asp.net-mvc job-queue

我研究了为Web应用程序排队的概念(即将某些类型的作业放入队列中以供单独的工作人员完成,而不是在Web请求周期中完成).

我想知道是否有任何好的解决方案可以在ASP.NET MVC环境中使用.

有没有人有任何(好的或坏的)经历?

谢谢!

更新:

只是为了澄清,我不是在谈论排队传入的请求.我会试着说明我的意思......

1)标准情况:

  • 从浏览器请求
  • 服务器处理开始
  • 长期工作开始
  • 长期工作完成
  • 服务器处理完成
  • 响应返回给浏览器

2)我正在研究的内容:

  • 从浏览器中获取
  • 服务器处理开始
  • 长期工作排在队列中
  • 服务器处理完成
  • 响应返回给浏览器

在另一个过程中(可能在发送响应之后):

  • 从队列中取出长期工作
  • 长期工作开始
  • 长期工作完成

在第一个实例中,用户已经等待了很长时间来进行服务器重新计算,在第二个实例中它很快.

当然,某些类型的工作适合于此,有些则不适合.

UPDATE2:

客户端不必立即使用长作业的结果进行更新.只要用户碰巧刷新页面(当然,在作业完成之后),这些更改就会在应用程序中显示出来.

想想堆栈溢出中发生的一些事情 - 它们不会立即在应用程序的每个部分更新,但这种情况很快发生 - 我怀疑其中一些工作正在排队.

Mag*_*son 5

将作业数据发布到MSMQ队列中,并让Windows服务处理队列中的项目.或者,让Web请求生成一个处理队列中项目的进程.