将多个触发器添加到单个石英作业

问题描述

| 我想动态地将触发器添加到作业,但找不到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个触发器 Job \'LoadJobs.Job-42 \'的生产实例,class = com.scheduling.LoadScheduleJob 在作业JobJobs.Job-42上调用执行 批量获取1个触发器 需要的职位:42:44 ------ LoadJobs.Trigger-45 42的作业调度失败:45-1/5 * *? * *     

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)