Ir para conteúdo

Arquivado

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

EstiloFacil

Problema com conexão longa no sencha touch

Recommended Posts

Pessoal boa tarde,

 

Estou com um problema chatinho aqui com uma aplicação android usando sencha touch. A situação é a seguinte: Meu aplicativo manda um JSON razoavelmente grande pro servidor, para ser processado e fica aguardando a resposta. O problema é que o processamento desse json demora em torno de 2 minutos. O timeout da request está em 10 minutos. Antes que complete esses 2 minutos, a aplicação devolve um erro de conexão, e encerra a conexão, mas por incrível que pareça, no servidor, a conexão ainda está ativa, o processamento executa uma transaction que ainda está aberta, e após uns 2 minutos ele comita todos os dados que deve comitar, e funciona normalmente...

O problema é que o cliente (sencha touch + phonegap) não espera até a resposta do servidor, ele mata a conexão antes alegando erro de conexão.

 

Alguém já passou por isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui resolver, se alguém mais tiver esse problema, vejam bem o que eu fiz. O problema era com o servidor. Antes meu servidor estava assim:

1 - Recebia dados do client (sencha touch)

2 - Processava (duração de 15 segundos em média)

3 - Devolvia resposta em JSON, e só agora enviava os headers de 200 se foi com sucesso ou 500 se deu erro.

 

Então alterei o servidor pra fazer o seguinte:

1 - Enviar header 200

2 - Processamento normal de 15 segundos em média

3 - Envio do JSON de resposta do processamento pro client (sencha touch).

 

Como agora eu já mando o header de 200 logo de cara, o client "aguenta" esperar os 15 segundos até aparecer o JSON. Como antes não tinha o header 200 logo no início, o phonegap derrubava a conexão, mesmo sem esperar o timeout do sencha touch.

 

Espero que possa ser útil pra alguém ^^

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.