Agregar múltiples disparadores a un solo trabajo de cuarzo
Deseo agregar dinámicamente disparadores a un trabajo, pero no puedo encontrar ningún método útil fuera del Programador
Sin embargo, podría llamar al método scheduleJob de forma repetitiva, pero esto me da la excepción ObjectAlreadyExists "porque ya existe una con esta identificación".
¿Cómo puedo hacer esto
EDITA
private boolean scheduleLoadJob( XfuScheduleTimeInfo time )
{
LoadScheduleJob job = new LoadScheduleJob( time );
JobDetail detail;
Integer id = Integer.valueOf( time.getScheduleId() );
if( _hashMap.containsKey( id ) )
{
detail = _hashMap.get( Integer.valueOf( time.getScheduleId() ) );
}
else
{
detail = job.getDetail();
_hashMap.put( id, detail );
}
try
{
Trigger newTrigger = job.getTrigger();
_log.debug( "------" + newTrigger.getKey() );
_quartzScheduler.scheduleJob( detail, newTrigger );
return true;
}
catch( ParseException e )
{
_log.error( "Unable to parse cron expression for " + job.getInfo() );
return false;
}
catch( SchedulerException e )
{
_log.error( "Job scheduling failed for " + job.getInfo() );
return false;
}
}
Con salida de consola
------ LoadJobs.Trigger-44
batch adquisición de 1 disparadores
Instancia de producción del trabajo 'LoadJobs.Job-42', class = com.scheduling.LoadScheduleJob
Calling ejecutar en el trabajo LoadJobs.Job-42
batch adquisición de 1 disparadores
Job pidió: 42: 44
------ LoadJobs.Trigger-45
a programación de @Job falló para 42: 45 - 1/5 * *? * *