Agendamento de Tarefa com Timer

10 respostas
danilomcb

Olá galera. Sou novo aqui e já estou chegando com uma dúvida. Desculpem qualquer coisa…srsrsr… :smiley:

Gostaria de saber se tem como eu finalizar uma thread utilizando a classe Timer.

Por exemplo: Tenho minha aplicação que é o agendamento de uma determinada tarefa ( seria um laço infinito coletando e jogando dados em um BD) onde o usuário determina a hora que irá começar e terminar.

O agendamento para o inicio fiz beleza, mas não sei como fazer para terminar. Quem poder ajudar ficarei grato. :lol:

10 Respostas

danilomcb

Ninguém ?? :frowning:

danilomcb

help… :lol:

nel

Não fica subindo o tópico colega, se ninguém respondeu ainda falta tempo ou conhecimento.
Está usando JDBC e threads “puro” ? Se sim, dá uma pesquisada. Encontrei algumas referências de como utilizar a classe Timer.

danilomcb

Desculpe, é que não estou encontrando nada a respeito do assunto e preciso disso com uma certa urgência.

Estou utilizando as próprias threads criadas pela classe Timer. O problema não é pegar do banco as informações de inicio ou de parada, mas sim fazer a minha tarefa terminar com essa data.
A parte de iniciar a tarefa consegui fazer também.

guilherme.dio

Porque vc nao cria sua própria thread? e sempre que o usuário lançar uma nova tarefa no sistema, vc instancia sua thread, que fica verificando o horario, e quando bater com o horario escolhido pelo usuário executa algo e finaliza o processo.

danilomcb

Pensei em fazer isso, mas teria que ter um laço externo ao meu método só para fazer essa comparação da hora do sistema com a hora agendada, já que o método que irá rodar com o agendamento tem um delay determinado pelo usuário. Achei isso meio que uma “gambiarra”. E também acho que teria problemas em comparar essas datas. Mas se não tiver outra solução, vai ter que ser isso mesmo.

F

Cara, eu te sugeriria estudar o Quartz:

http://quartz-scheduler.org/

Acho que é o que tu precisa. Só não tenho certeza porque nunca precisei o utilizar, mas vejo muita gente o indicando pra esse tipo de coisa…

nel

fasts:
Cara, eu te sugeriria estudar o Quartz:

http://quartz-scheduler.org/

Acho que é o que tu precisa. Só não tenho certeza porque nunca precisei o utilizar, mas vejo muita gente o indicando pra esse tipo de coisa…

Muito boa citação. Eu já utilizei ele mas simplesmente esqueci.
Precisei usar com Threads e não tive problema, recomendo. Faz tempo que fiz isso, mas lembro que funcionava perfeitamente.

danilomcb

Eu dei uma olhada no Quartz, achei um pouco complicado para converter Date nas expreções “cron” que ele utiliza.
Não cheguei a ver se ele faz esse tipo de agendamento que eu quero, se fizer seria uma possivel solução tb. Vou estudar melhor.

nel

danilomcb:
Eu dei uma olhada no Quartz, achei um pouco complicado para converter Date nas expreções “cron” que ele utiliza.
Não cheguei a ver se ele faz esse tipo de agendamento que eu quero, se fizer seria uma possivel solução tb. Vou estudar melhor.

Sim, ele faz . Só precisa compreender como usar as expressões dele, parece meio difícil, mas leia com anteção que vai entender bem ela.
Abraços.

Criado 2 de maio de 2012
Ultima resposta 4 de mai. de 2012
Respostas 10
Participantes 4