2010-10-31 18 views
6

Kümelenmiş bir ThreadPool oluşturmak için Quartz kullanıyorum ve çeşitli zamanlarda çalışan görevlerim var. 1 görev kümelenmiş ThreadPool üzerinde ve yalnızca bir kez çalıştırmanın en iyi yolu nedir. Görevimi yüksek öncelikli olarak belirleyebileceğimi biliyorum. Ama "tek çekim" görevini kaydetmenin en iyi yolu nedir? Ben bir şey eksik gerekir, ya da belki sadece docs bu biraz gözardı gibiQuartz ile bir kerelik görev

cevap

4

hissediyorum:

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 sıfır olamaz ya SimpleTrigger doğrulaması sırasında bir org.quartz.SchedulerException atacaktır. – Aidamina

+2

Bu kuvars 2.2.1 için çalışmıyor. Ben SimpleTrigger – AD14

+0

başlatılamıyor diyerek bir hata alıyorum kuvars ~ 1.6 ile çalışacak ama ~ 2.1 ile değil –

11

Ayrıca hayat a yapmak için TriggerBuilder sınıfını kullanabilirsiniz biraz daha kolay. Daha önce yayınlanmış olana benziyor, sadece biraz daha temiz.

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

Bu bir iş sadece bir kez yangın kuvars 2.2.1 için çalışır. – AD14

+0

Bu tetikleyiciye yanlış ateşleme talimatları eklemenin bir yolunu bulamıyorum. – pkrish

2

, önceden kayıtlı iş için bir tek atış tetiklemek için en kolay yolu:

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