Como eu posso reagendar uma tarefa que já foi agendada no Quartz, fornecendo uma nova Cron Expression, sem reiniciá-lo, ou ao servidor de aplicações?
Reagendamento no quartz
4 Respostas
E
Até onde eu sei ele não tem essa funcionalidade, eu estou trabalhando em algo q possa resolver tal problema através de OSGi.
http://www.javaworld.com/ifind/java/query.html?qm=0&st=1&nh=10&col=java&qt=OSGi&x=0&y=0&=Go
Até onde eu sei ele não tem essa funcionalidade, eu estou trabalhando em algo q possa resolver tal problema através de OSGi.
http://www.javaworld.com/ifind/java/query.html?qm=0&st=1&nh=10&col=java&qt=OSGi&x=0&y=0&=Go
Hum… e o método rescheduleJob()? Não serve para isso?
:?:
E
Acho q naum, mas testa ai e me fala se resolveu ou naum pq eu estou trabalhando em uma aplicação para resolver esse tipo de problema.
Bom como este tópico não tem a solução para o problema e não achei um exemplo simples desta necessidade, segue um exemplo de reagendamento no Quartz:
import java.text.ParseException;
import java.util.Date;
import org.quartz.CronTrigger;
import org.quartz.Job;
import org.quartz.JobDetail;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.impl.StdSchedulerFactory;
public class Tarefa implements Job
{
static Scheduler agendador;
static JobDetail detalhe = new JobDetail("Tarefa exemplo", Scheduler.DEFAULT_GROUP, Tarefa.class);
static CronTrigger trigger;
static
{
try
{ //A cada 1 segundo
trigger = new CronTrigger("MyTrigger",Scheduler.DEFAULT_GROUP,"0/1 * * * * ?");
agendador = StdSchedulerFactory.getDefaultScheduler();
}
catch (Exception e)
{
}
trigger.setName("Trigger exemplo");
trigger.setStartTime(new Date());
}
public void execute(JobExecutionContext arg0) throws JobExecutionException
{
System.out.println("Disparou:" + new Date());
}
public static void main(String[] args) throws SchedulerException, ParseException
{
agendador.scheduleJob(detalhe, trigger);
agendador.start();
try
{
Thread.sleep(1000 * 10);
}
catch (Exception e)
{
}
System.out.println("Alterando Triger"); //A cada 5 segundos
trigger = new CronTrigger("MyTrigger",Scheduler.DEFAULT_GROUP,"0/5 * * * * ?");
trigger.setJobName("Tarefa exemplo");
trigger.setStartTime(new Date());
agendador.shutdown();
agendador = StdSchedulerFactory.getDefaultScheduler();
agendador.scheduleJob(detalhe, trigger);
agendador.start();
}
}
Criado 6 de agosto de 2008
Ultima resposta 27 de jul. de 2010
Respostas 4
Participantes 3
Alura O que é Python? — um guia completo para iniciar nessa linguagem de programação Acesse agora o guia sobre Python e inicie sua jornada nessa linguagem de programação: o que é e para que serve, sua sintaxe e como iniciar nela!
Casa do Codigo Engenharia de Prompt para Devs: Um guia para aprender a... Por Ricardo Pupo Larguesa — Casa do Codigo