Добавить несколько триггеров в одно задание кварца

Я хочу динамически добавлять триггеры в задание, но могу ' Я не могу найти какие-либо полезные методы в Scheduler

. Хотя я мог бы просто повторно вызывать метод scheduleJob, но это дает мне исключение ObjectAlreadyExists, «потому что он уже существует с этой идентификацией».

Как я могу это сделать это?

РЕДАКТИРОВАТЬ

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;
    }
}

с выводом в консоль

------ LoadJobs.Trigger-44

пакетное получение 1 триггеров

Создание экземпляра задания 'LoadJobs.Job-42', класс = com.scheduling.LoadScheduleJob

Вызов выполнения задания LoadJobs.Job-42

пакетное получение 1 триггера

Требуется задание: 42: 44

------ LoadJobs.Trigger-45

Сбой планирования заданий для 42: 45 - 1/5 * *? * *

13
задан STW 7 August 2013 в 13:33
поделиться