2010-10-31 102 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);