Construir controlador assíncrono
Tradicionalmente, o fluxo de um aplicativo da web é síncrono, ou seja, fazemos um pedido ao servidor e paramos enquanto aguardamos a resposta, até cerca de 5 anos atrás este modelo era válido, porém com os novos requisitos e as novas ferramentas já precisamos de algo mais dinâmico.
Aplicativo assíncronoUma aplicação assíncrona é aquela que nos permite realizar várias atividades que não interferem entre si e cada uma consulta uma parte diferente no servidor, com isso salvando um documento podemos consultar outro, sem ter que esperar uma resposta, um exemplo desse tipo de aplicativo é Gmail, onde ao enviar um e-mail podemos ver a caixa de entrada.
Nesta seção, veremos o que é um controlador assíncrono e como construí-lo usando ASP.NET MVC.
Um dos componentes mais importantes de nossas aplicações são os controladores, em ASP.NET MVC podemos fazê-los trabalhar de forma assíncrona com isso, podemos evitar que os processos travem ao fazer uma consulta.
Bloqueio de SegmentoEmbora na maioria das vezes esse bloqueio seja tão pequeno que parece que várias coisas estão sendo feitas ao mesmo tempo, há momentos em que temos que preparar um processo muito mais pesado e isso bloquearia a linha de trabalho de tal forma que o Processo fome, isto é, processos que esperam pelo fio por tanto tempo que morrem.
Isso ocorre porque o servidor começa a empilhar os processos de espera e chega um ponto em que o espaço que ele pode usar transborda, com isso veremos o tão popular erro 503 de serviço não disponível, para evitar isso podemos criar um controlador assíncrono, o que não diminui o tempo de execução do último processo, mas libera o thread de processamento para que outros processos possam usá-lo.
Para que nosso controlador seja assíncrono devemos obedecer a uma estrutura de base de suas ações, desta forma podemos atingir nosso objetivo, para isso devemos seguir algumas convenções estabelecidas pelo framework. Vamos ver o que precisamos:
Ação assíncronaDevemos criar uma ação em nosso controlador que tenha a palavra Assíncrono em seu nome, por convenção ASP.NET MVC você saberá o que é o processo assíncrono. Um exemplo pode ser SearchBooksAsync, além disso, esta ação ou método deve voltar vazio.
Ação completadaEm seguida, devemos criar uma ação que possamos chamar uma vez que o processo assíncrono tenha sido concluído, para isso devemos criar uma ação que possa lidar com o retorno do ActionResult, para isso devemos criar um método com a palavra Concluído em seu nome, como: SearchBooksCompleted, com isso já teremos os elementos básicos necessários.
Como podemos ver, não precisamos muito para criar um controlador assíncrono, acima de tudo é elaborar a lógica e seguir um pouco as convenções para que o framework possa determinar o que estamos construindo na aplicação. Os fundamentos da programação assíncrona em ASP.NET MVC Eles não são complexos, na segunda parte deste tutorial veremos um exemplo mais completo de como criar um controlador assíncrono, além de outros conceitos importantes.
Anteriorpagina 1 de 2Próximo