TimerTask para sozinha

Pessoall estou com um problema sério de agendamento de tarefas utilizando TimerTask, o problema é que a tarefa para do nada. não da exception, o programa nao fecha, nao acontece nada, simplesmente ela para de rodar todas as tarefas agendadas.

alguem sabe se essa API eh confiavel?

alguem tem uma solucao para agendar tarefas? (menos o Quartz)

Obrigado!

Eu tenho usado essa API sem problemas. Tenho 1 aplicação que utiliza diversas tarefas e está rodando sem problemas há meses. O que sua tarefa faz?

As classes de timer do Java funcionam mais ou menos assim. Cria-se uma thread que fica em “sleep” até que o horário determinado aconteça. O problema é que se alguma exceção for disparada dentro do tratamento desse timer, a exceção derruba essa thread.

O correto é você capturar e logar a exceção. Faça um tratamento de “Throwable” (a mãe e pai de todas as exceções).

Usa a API do TimerService do JEE.

@Schedule(second=?0?, minute=?0?, hour=?0?, dayOfMonth=??, month=??, dayOfWeek=?Mon?, year=?*?)
// Defini o método que deve ser executado em um período de tempo

tambem acho q acontece alguma exception dentro de algum metodo, mas todos os metodos estao com try{ no comeco e no fim tem um catch(Exception) era pra capturar todas as exception.

entanglement, tem como vc explicar melhor esse Throwable?

Basicamente, java.lang.Throwable é a superclasse de java.lang.Exception e java.lang.Error.

Então se você puser um “catch (Throwable thr)” no seu código, pega qualquer erro - qualquer erro mesmo.

aproveitando da sua bondade, Toda e qualquer exception herda de Exception? ou pode acontecer de alguma herdar diretamente de Throwable?

porque meu codigo todo captura Excetion, entao qualquer erro era pra ser capturado.

Ignore minha ultima pergunta, vi na API q pode ter excetions que nao herdam da classe Excetion.

vlw ajuda, assim q resolver coloco o topico como resolvido.

abrax

Experimente setar a classe principal que chama timertask como um thread daemon.