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

编程入门 行业动态 更新时间:2024-10-09 21:28:01
本文介绍了将多个触发器添加到单个石英作业的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我想动态地将触发器添加到作业,但是找不到Scheduler之外的任何有用方法

I want to dynamically add triggers to a job, but can't find any helpful methods off of Scheduler

我虽然可以调用scheduleJob方法重复进行,但是这给我tObjectAlreadyExists异常因为此标识已经存在。

I though i would just be able to call the scheduleJob method an repetitively, but this gives me tthe ObjectAlreadyExists Exception "because one already exists with this identification".

我该怎么做?

EDIT

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

------ LoadJobs.Trigger-44

批量获取1个触发器

作业'LoadJobs.Job-42'的生产实例,class = com.scheduling.LoadScheduleJob

Producing instance of Job 'LoadJobs.Job-42', class=com.scheduling.LoadScheduleJob

在作业LoadJobs上调用执行。 Job-42

Calling execute on job LoadJobs.Job-42

批量获取1个触发器

工作需要:42:44

Job called for: 42 : 44

------ LoadJobs.Trigger-45

------ LoadJobs.Trigger-45

作业调度失败42:45-1/5 * *? * *

Job scheduling failed for 42 : 45 - 1/5 * * ? * *

推荐答案

这篇文章给出了提示,但是结论(schedulerInstance.add(trigger))从Quartz 2.01开始无效。

This post gives a hint, but the conclusion ( schedulerInstance.add(trigger) ) is not valid as of Quartz 2.01.

在将作业分配给触发器之后,而不是使用以下命令(一种方法是使用TriggerBuilder的forJob方法)

Instead use the following, after assinging the job to the trigger ( one way is using the TriggerBuilder's forJob method )

schedulerInstance.scheduleJob( newTrigger )

更多推荐

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

本文发布于:2023-11-25 20:55:34,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1631311.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:多个   触发器   作业   石英

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!