¿Cómo puedo implementar colas de procesamiento en segundo plano en mi aplicación web ASP.NET MVC? Si bien la mayoría de los cambios de datos, actualizaciones, etc. deben ser visibles de inmediato, existen otras actualizaciones que no necesitan procesamiento en tiempo real que me gustaría transferir a un proceso en segundo plano de menor prioridad que lo resolverá a su propio ritmo. .Procesamiento en segundo plano basado en cola en la aplicación web ASP.NET MVC
Como ejemplo, tome el sistema de concesión de distintivos de StackOverflow. Por lo general, puede realizar una acción específica que le otorgue una insignia, pero el 'premio' real ocurre más tarde (generalmente entre 10 minutos y un par de horas más tarde). Supongo que esto se hace a través de un proceso de fondo separado, ya que no es crítico para el funcionamiento de SO otorgar insignias de inmediato cuando se gana.
Por lo tanto, estoy tratando de crear algún tipo de sistema de cola en el que pueda completar tareas (digamos cualquier cosa que implemente la interfaz ITask que tendrá un método Process) que eventualmente será ejecutado por un proceso separado.
¿Cómo podría implementar este sistema? Ideas/Sugerencia/Código de muestra?
¡Gracias!
¿Tiene usted un ejemplo de cómo inicialmente una aplicación de servicio de 'conectar' con un MSMQ y luego a ASP.NET MVC? Esto es bastante nuevo para mí. ¡Gracias! – Alex
Usted solo escribe en la cola apropiada. Su servicio llamará a .Receive y su página, de la que desea enviar un mensaje a la cola, simplemente llamará a '.Send'. Voy a actualizar con un pequeño ejemplo. –
Actualizado. Tenga en cuenta que no he mostrado el código para crear la cola, si no existe. Pero eso se puede encontrar de manera trivial simplemente tomando un me gusta en System.Messaging API. Específicamente: MessageQueue.Create (...). Tenga en cuenta que también necesitará obtener los permisos adecuados. (.Establecer permisos). –