Um servidor http pode detectar que um cliente cancelou sua solicitação?

Meu aplicativo da web deve processar e veicular muitos dados para exibir determinadas páginas. Às vezes, o usuário fecha ou atualiza uma página enquanto o servidor ainda está ocupado processando-a. Isso significa que o servidor continuará processando os dados por alguns minutos apenas para enviá-los a um cliente que não está mais ouvindo.

É possível detectar que a conexão foi interrompida e reagir a ela?

Neste projeto em particular, estamos usando Django e NginX, ou Apache. Eu assumi que isso é possível porque o servidor de desenvolvimento do Django parece reagir a solicitações canceladas, imprimindo exceções do Broken Pipe. Eu adoraria que isso gerasse uma exceção que meu código de aplicativo pudesse capturar.Parece que o JSP pode fazer isso. O node.js também pode aqui.

Como alternativa, eu poderia registrar um manipulador de eventos de descarregamento na página em questão, fazer um XHR síncrono solicitando que a solicitação anterior desse usuário fosse cancelada e fazer algum tipo de comunicação entre processos para fazer isso. Talvez se o processamento mais lento dos dados fosse entregue a outro processo que eu pudesse identificar e matar com mais facilidade, sem matar o processo de resposta ...

questionAnswers(2)

yourAnswerToTheQuestion