Parar Thread de um JOB (Quartz)

7 respostas
evertonsilvagomesjav

Pessoal boa noite.

Eu preciso parar um Job que é processado em uma Thread A, porém esse cancelamento será feito por outra Thread B, qual seria a melhor forma pra fazer?

Atualmente estou usando o interrupt() da ‘Thread A’ do Job na minha Thread B, só que quando o interrupt() dispara a exceção o Quartz não executa mais.

Alguem pode me ajudar?

7 Respostas

mauricioadl

Invocar o interrupt vai parar a thread e o q vc precisa eh pausa-la. segue:

evertonsilvagomesjav

[quote=mauricioadl]Invocar o interrupt vai parar a thread e o q vc precisa eh pausa-la. segue:

Mauricio bom dia, mas eu preciso parar a Thread mesmo.

mauricioadl

Vc vai ter que fazer com que seu codigo finalize sem lançar exceção, se nao o quartz nao vai rodar mais. Tipo colocar uma variavel de interrupção e ir verificando ela a cada etapa.

evertonsilvagomesjav

Mas como eu vou fazer isso? A aplicação é web são dois momentos totalmente independentes o Job sobe junto com o contexto e é executado de 2 em 2 minutos, e o cancelamento é feito em uma tela pelo Usuário.

mauricioadl

faça um codigo dentro da job que olhe para alguma variavel ou config de banco ou qualquer coisa antes de começar a rodar. se tiver liberado executa ou não.
Agora interromper a job no meio da execução é mais complicado, mas vc pode ir testando cada etapa da job se for o caso.
entendeu?

evertonsilvagomesjav

mauricioadl:
faça um codigo dentro da job que olhe para alguma variavel ou config de banco ou qualquer coisa antes de começar a rodar. se tiver liberado executa ou não.
Agora interromper a job no meio da execução é mais complicado, mas vc pode ir testando cada etapa da job se for o caso.
entendeu?

Sim eu entendi, o maior problema é que ele deve ser interrompido no meio da execução. Criar uma variável e ficar verificando toda hora seria a melhor solução?

mauricioadl

Eu acho q sim, pois não tem como parar uma thread sem que ela termine o seu método run ou lance um exceção

Criado 12 de setembro de 2013
Ultima resposta 12 de set. de 2013
Respostas 7
Participantes 2