Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Queueing solutions for ASP.NET MVC

I looking into the concept of queueing for web apps (i.e. putting some types of job in a queue for completion by a seperate worker, rather than being completed in the web request cycle).

I would like to know if there are any good solutions existing for this which can be utilised in an ASP.NET MVC environemnt.

Has anyone had any (good or bad) experiences?

Thank you!

UPDATE:

Just to clarify, I'm not talking about queueing incoming requests. I'll try to illustrate what I mean...

1) Standard situation:

  • Request from browser
  • Server processing starts
  • Long job starts
  • Long job finished
  • Server processing finished
  • Response returned to browser

2) What I'm looking into:

  • Requsest from browser
  • Server processing starts
  • Long job placed in queue
  • Server processing finished
  • Response returned to browser

And in another process (possibly after the response was sent):

  • Long job taken from queue
  • Long job starts
  • Long job finished

In the first instance the user has waited a long time for server resoponse, in the second it was quick.

Of course there are certain types of jobs that would be appropriate for this, some that would not be.

UPDATE2:

The client doesn't have to be updated immediately with the results of the long job. The changes would just show themselves in the application whenever the user happened to refresh a page (after the job had completed of course).

Think of some of the things that happen in stack overflow - they are not immediately updated in each part of the application, but this happends quite quickly - I suspect some of these jobs are being queued.

like image 808
UpTheCreek Avatar asked Aug 31 '09 11:08

UpTheCreek


1 Answers

Post the job data in an MSMQ queue and have a Windows Service process the items in the queue. Or, let the web request spawn a process that process the items in the queue.

like image 126
Magnus Johansson Avatar answered Sep 22 '22 12:09

Magnus Johansson