Quartz

2016-03-24 20 views
0

'u kullanarak belirli bir saat diliminde belirli bir zamanda bir işi nasıl yürütme Kuvars kullanan bir kullanıcının saat diliminde belirli bir zamanda bir işin tek bir yürütülmesini kurmaya çalışıyorum. Şimdi, kutunun dışında, zamanlayıcıda herhangi bir şeyi yürütmek için zamanlayıcıya söyleyebileceğim tek yol cronSchedule. Kaba, potansiyel olarak, datetime'yı bir cron ifadesine dönüştürebilir ve daha sonra ilk başarılı uygulamadan sonra bu tetikleyiciyi durdurabilirdim, ancak , kokuyor.Quartz

Not: SimpleSchedule gibi bir saat dilimi ayarlamama izin vermiyor gibi görünüyor.

Başka bir seçenek, kullanıcı tarafından sağlanan zamanların bir zamanlayıcının zaman dilimi için dönüştürülmesi ve daha sonra bu zamana sahip tetikleyici oluşturmaktır. Ancak, bu felaket için reçetedir.

Buradaki en iyi seçeneğim nedir?

sayesinde

+0

Olası cevap: http://stackoverflow.com/questions/12566297/ayar-a-zaman dilimi-için-kuvars-basit-tetik/12566466 # 12566466 –

cevap

0

Sen Gerekli Saat Dilimi ile mevcut tetiği güncellemek ve işi erteleyebilirsin: En

http://quartz-scheduler.org/documentation/quartz-2.x/cookbook/UpdateTrigger

// retrieve the trigger 
    Trigger oldTrigger = sched.getTrigger(triggerKey("oldTrigger", "group1"); 

    // obtain a builder that would produce the trigger 
    TriggerBuilder tb = oldTrigger.getTriggerBuilder(); 

    // update the schedule associated with the builder, and build the new trigger 
    // (other builder methods could be called, to change the trigger in any desired way) 

    Trigger newTrigger = tb.withSchedule(simpleSchedule() 
.withIntervalInSeconds(10) 
.withRepeatCount(10) 
.inTimeZone(TimeZone.getTimeZone("America/Los_Angeles")) 
.build(); 

sched.rescheduleJob(oldTrigger.getKey(), newTrigger); 
İlgili konular