Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Paulo de Tarso F. M.

Encerrar execução após certo tempo

Recommended Posts

Olá pessoal!

 

Seguinte, como faço para encerrar a tentativa de execução de uma consulta a um Web service quando o tempo exceder um limite pré-determinado, por exemplo, após 10 segundos?

 

O que acontece é que estou efetuando algumas manutenções em uma loja virtual em ASP (linguagem esta que não tenho muita familiaridade...) que utiliza o cálculo do frete com o Web Service dos Correios (que vive caindo...), então estava querendo encerrar a tentativa de cálculo quando ultrapassar uns 10 segundos e tals...

 

Isso é possível? Se sim, como?

 

 

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

somente com o asp não é possível.

Será? E se ele colocar no AddHeader para redirecionar para uma outra página em 10 segundos?

 

Se passar da leitura do Webservice, ele coloca outro AddHeader para sobrescrever o primeiro, nesse caso será para aumentar o tempo, se travar no Webservice, automaticamente será redirecionado para outra página.

 

Faz esse teste aí, nunca precisei utilizar dessa forma, mas foi uma idéia que surgiu ao ler o tópico.

 

Lembrando que a página tem que ser intermediária, independente do que resultar, ela tem que ser redirecionada para algum lugar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais ele quer fazer uma tentativa em 10 segundos, se não fosse isso não haveria a necessidade de colocar o tempo, pois bastaria verificar se ta ou não disponível.

 

Se tiver continua

Se não tiver redireciona

 

Para esse caso não é necessário utilizar nem AddHeader

 

O problema é que ele quer verificar em 10 segundos, nesse caso o sistema pode tentar mais de 1 tentativa, então a probabilidade de retornar neste 10 segundos a pagina ok é maior.

 

Por isso nesse caso em que neste 10 segundos tera que fazer verificações seguidas em 10 segundos caso o webservice estiver estável, é necessário utilizar javascript, pois pelo asp ele ira verificar apenas 1 vez não ser que faça um code gigante com varias verificações desnecessárias já que seria possível através de javascript.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal, obrigado pelas respostas.

 

Patrique, a situação é a seguinte, o grande problema é que o script já tem uma verificação do status do serviço, que se o retorno não for o código 200, ele define o valor do frete com o valor mínimo especificado, mas acontece que ele nunca retorna 200... Devido à lentidão, ele não retorna erro nenhum, ele fica tentando, tentando, tentando... E nessas tentativas o servidor "cai" devido à demora...

 

hargon, se eu trabalhar com esse AddHeader, quer dizer que defino na página e, se o serviço retornar o codigo 200, eu sobrescrevo este AddHeader com um tempo maior? :mellow: Mas como eu faço para definir esse tempo? Utilizei esta referência:

 

http://forum.imasters.com.br/public/style_emoticons/default/seta.gif ASP AddHeader Method

http://www.w3schools.com/asp/met_addheader.asp

 

Mas pelo exemplo, o "value" é apenas uma strong...

 

 

Alguém tem um exemplo de uso de AddHeader semelhante ao que preciso?

 

 

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode esquecer... Fiz o teste aqui agora do que pensei e não funcionou.

 

<%
Response.AddHeader "Refresh","1 ; URL=http://127.0.0.1/teste48.asp"
Response.Flush
i = 1
While i > 0
Wend

Response.AddHeader "Refresh","60 ; URL=http://127.0.0.1/teste49.asp"

Response.Write "Ok"
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.