quarta-feira, 5 de dezembro de 2012

Timeout de query


Prezados leitores, mostrarei aqui com o mesmo exemplo anterior, como se faz "timeout de query", uma técnica indispensável para um alto uptime de um sistema web feito em Coldfusion.

O timeout de query nada mais é do que um tempo especificado em segundos, após o qual o servidor de aplicação interromperá a execução por uma exceção.


 O erro gerado deve ser tratado pela aplicação e informado ao usuário: "não houve uma resposta à sua requisição dentro do tempo limite esperado". Isso evita gargalos por enfileiramento e garante a aplicação no ar e respondendo.

<cfset result="true">

<cftry>
   <cfquery datasource="bdProd" name="retornaCidades" timeout="10">

       select cod_cidade, dsc_cidade
       from esc.cidade
       where cod_uf = <cfqueryparam value="#arguments.uf#"

                       cfsqltype="CF_SQL_VARCHAR" maxlength="2">
       order by decode(dsc_cidade,'Rio De Janeiro','A',dsc_cidade)


   </cfquery>
 

<cfcatch type="Any" >
   <cfif #FindNoCase("timeout", cfcatch.Detail)# GT 0>
      <cfset result = "Não houve resposta dentro do tempo disponível!">
   <cfelse>
      <cfset result = "Ocorreu um erro durante a pesquisa. Tente novamente!">
   </cfif>           
</cfcatch>
</cftry>         

 

Simples assim e evita muitos problemas!

Até o próximo post!
 

Nenhum comentário:

Postar um comentário