Pregunta ¿Debe finalizar una tarea asincrónica sin retorno antes de que una solicitud ASP.NET pueda finalizar


Estoy desarrollando un sistema de comercio de subastas para vehículos comerciales dentro de la empresa para la que trabajo.

Los comerciantes pueden establecer alertas y cada vez que se envíe una nueva lista quiero usar los detalles de la nueva lista para buscar las coincidencias entre las alertas de todos, pero este no debería ser el tiempo que un operador debería esperar para obtener la confirmación de su lista exitosa, Quiero ejecutarlo en segundo plano.

Mi pregunta es, si marcó la función async y no se preocupe por el retorno, ¿el marco ASP.NET MVC aún desea esperar a que la función asíncrona finalice antes de finalizar la solicitud?

Sé que probablemente podría probar esto, pero no estoy seguro de cómo, aún no he profundizado demasiado en mis libros asíncronos.

Gracias.


7
2018-03-15 16:02


origen


Respuestas:


En ASP.NET está limitado a los límites de una determinada solicitud / respuesta HTTP. Puedes y deberías usar async/await dentro de sus métodos de controlador ASP.NET MVC / API API (como descrito aquí), esto mejora la escalabilidad de su aplicación web.

Sin embargo, no cambia el hecho de que el navegador web del lado del cliente ha enviado una solicitud HTTP y todavía está esperando la respuesta HTTP. Normalmente, toda la operación asincrónica iniciada por un método de controlador asíncrono debería haberse completado, antes de que la respuesta se envíe al cliente.

Si necesita abarcar una operación del lado del servidor de larga ejecución a través de los límites de una sola solicitud HTTP, aquí hay una respuesta relacionada. Si su lógica del lado del cliente requiere actualizaciones de alta frecuencia del servidor, Microsoft tiene SignalR para eso.


3
2018-03-16 01:47