questão polling longa com alta website tráfego
-
07-07-2019 - |
Pergunta
Say I tem roteiro, que faz muito tempo de votação no servidor para verificar se o usuário tem quaisquer novos mesages. do lado do servidor seria algo como isto
while counter < 5
if something_changed
push_changes_to_client
break
else
counter++
sleep 5
Qual banco de dados 5 vezes e cada vez que se não houver uma mudança de cheques, ele espera 5s até que próxima verificação, o que resulta em tempo máximo de execução de cerca de 25s.
O que acontece ao passar o cliente de uma página para outra muito rápido? Suponho que o keep script de servidor em execução mesmo após o movimento cliente para página diferente, onde ele envia outro pedido de alterações.
Isso significa que, quando muitas pessoas estão se movendo rapidamente em torno do local (menos do que o 25s execução máximo em cada página), em seguida, o servidor tem que continuar correndo todos os scripts, que estão tentando responder a página que doesn 't existe mais? Não seria esta causa o servidor para usar tudo isso do pool de threads muito rápido?
Solução
Em um modelo thread-per-conexão com chamadas sono síncronos, este fato pode amarrar um grande número de threads. No entanto, se o "sono" Simplesmente agenda uma chamada de retorno e retorna, o impasse pool de threads pode ser evitado.