2010-10-31 103 views
6

我正在使用Quartz来构建一个群集ThreadPool,并且我有多个在不同时间运行的任务。什么是在集群ThreadPool上永久运行1个任务并且只运行一次的最佳方式。我知道我可以将任务设置为高优先级。但是,注册“一次性”任务的最佳方式是什么?使用Quartz立即执行一次任务

回答

4

我觉得我必须失去了一些东西,或者也许你只是忽略了的文档该位:

public SimpleTrigger(String name, String group, Date startTime, Date endTime, int repeatCount, long repeatInterval)


SimpleTrigger trigger = new SimpleTrigger("myTrigger", 
              null, 
              new Date(), 
              null, 
              0, 
              0L); 
+2

按repeatInterval不能为零或SimpleTrigger将验证过程中抛出一个org.quartz.SchedulerException。 – Aidamina 2012-03-13 12:37:18

+2

这不适用于石英2.2.1。我得到一个错误,说不能实例化SimpleTrigger – AD14 2014-07-15 09:15:23

+0

将使用石英〜1.6而不是〜2.1 – 2016-06-14 22:35:59

11

您还可以使用TriggerBuilder类让生活一点点容易。这与之前发布的内容类似,只是一点清洁剂。

Trigger trigger = TriggerBuilder.newTrigger() 
    .startNow() 
    .build(); 
+0

这适用于石英2.2.1只能发射一次工作。 – AD14 2014-07-15 09:14:34

+0

我似乎无法找到将失火指令添加到此触发器的方法? – pkrish 2016-04-12 19:53:26

2

触发一次性的预注册工作的最简单方法:

Scheduler sched = ... 
scheduler.triggerJob(jobKey);