Pessoal, possuo uma situação onde os usuários solicitam relatórios via webservices RESTFul.
O que eu queria fazer… quando ele solicitasse um relatório no formato PDF, abrisse uma thread em background que começasse a gerar o relatório no formato EXCEL e JSON e guardasse no filesystem para que, caso o usuário solicitasse nestes formatos já estaria pronto.
Motivação disso: a demora em escrever em arquivo, assim, agilizaria bastante. E caso ele não solicitasse os outros formatos, existe um JOB que limpa os arquivos, então isso não seria um problema.
Problema:
Como estou num protocolo sem estado e assincrono( http) como posso saber que uma thread iniciada na requisição X ja estaria pronta na requisição Y ? Exemplo:
- Usuário faz a chamada pela primeira vez ao relatório
- inicia a geracao do relatorio no formato desejado (e em outras threads inicia nos outros formatos)
- retorna assim qeu o formato desejado estiver pronto
- usuario solicita outro formato… : como saber que a thread terminou a geracao do outro formato? Ok, verificando a existencia do arquivo mas… e se ainda nao terminou… como aguardar terminar? while true não vejo como a melhor solucao…
Obrigado.