Métodos Assíncronos EJB 3.1
A especificação Enterprise JavaBeans™ (EJB) 3.1 inclui funcionalidade que os desenvolvedores de aplicativos podem usar para configurar métodos assíncronos EJB, que são executados em um encadeamento separado do encadeamento do responsável pela chamada.
Esse mecanismo separa a solicitação de chamada do cliente da execução do método real. O encadeamento do cliente pode continuar fazendo outro trabalho enquanto o método EJB é executado em um encadeamento separado, conforme instruções do contêiner EJB.
Depois o cliente pode querer examinar o resultado da execução do método assíncrono, que às vezes é chamado de disparar e retornar. Nesse caso, o contêiner EJB retorna para o cliente um objeto que implementa a interface java.util.concurrent.Future<V>. O cliente pode usar esse objeto para verificar status, resultados ou exceções da chamada de método assíncrono. Alternativamente, os métodos assíncronos podem não retornar nenhum resultado, o que às vezes é chamado de disparar e esquecer.
Para obter mais detalhes, consulte as informações sobre como usar métodos assíncronos EJB em seu aplicativo.
Veja aqui alguns exemplos de cenários de uso para métodos assíncronos EJB:
- Um aplicativo tem diversas partes independentes de
trabalho que devem ser todas executadas para produzir um resultado final. Por
exemplo, suponha que uma reserva de viagem consista em três partes:
- Fazer uma reserva de vôo.
- Fazer uma reserva de aluguel de carro.
- Fazer uma reserva de hotel.
- Um aplicativo tem diversas partes independentes
de trabalho que devem ser executadas, mas não está interessado nos
resultados desse trabalho. Por exemplo, suponha que um varejista tenha
quatro filiais e o home office quer imprimir um relatório de vendas de
cada loja no final do dia. O desenvolvedor de aplicativos pode usar
métodos assíncronos EJB como um mecanismo de processamento em lote.
Diversas chamadas de método EJB podem ser usadas para enviar um lote
de solicitações de relatórios de vendas, uma para cada filial.
Nesse exemplo, presumivelmente, o aplicativo não precisa verificar os resultados dessas chamadas de método. Talvez isso seja feito pelo funcionário home office que pegará os relatórios de vendas da impressora na manha seguinte. Suponha que uma das filiais falhe ao fornecer o relatório solicitado. A pessoa que está coletando os relatórios pode decidir se isso era esperado, por exemplo, a filial fechou para fazer renovações, ou se a solicitação de relatório de vendas precisa ser emitida novamente para a filial.