1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Thread trabalhando no ServletContextListener

Galera,

Estou tentando achar o melhor jeito de iniciar uma sequencia de Thread dentro do metodo contextInitialized da classe que implementa ServletContextListener. Preciso dessas threads para fazer algumas verificações ao longo da vida do sistema.

Estou usando o seguinte código:

@Override
    public void contextInitialized(ServletContextEvent sce) {
        try {
            int corePoolSize = 5;
            int maxPoolSize = 10;
            long keepAliveTime = 5000;
            ExecutorService service = new ThreadPoolExecutor(corePoolSize, maxPoolSize, keepAliveTime, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>());
            service.execute(ClasseImplementaRunnable);
            service.shutdown();
            service.awaitTermination(1, TimeUnit.NANOSECONDS);
            while (!service.isTerminated()) {
            }
        } catch (Exception e) {
            RenoveLogger.logError("IniciaProcedimento", e);
        }
    }

O código esta funcionando o problema é que a aplicação não sobe enquanto nao terminar o while que verifica se todas as threads terminaram. Queria colocar esse processo em outra classe, so não estou sabendo como fazer isso.

Att

Vinicius Castro

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags threads servlets ou faça a sua própria pergunta.