2016-07-13 5 views
0

Ich versuche, einen Quartz Job wie diesen neu zu planen:Quarz-Job nicht mehr Brennen nach Umplanen

TriggerBuilder<SimpleTrigger> tb = ldTrigger.getObject().getTriggerBuilder(); 
Trigger newTrigger = tb.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInMilliseconds(interval)).build(); 
scheduler.getScheduler().rescheduleJob(oldTrigger.getObject().getKey(), newTrigger); 

wie erklärt in // http://www.quartz-scheduler.org/documentation/quartz-2.x/cookbook/UpdateTrigger.html und Spring + Quartz resheduling or updating the trigger?

Job läuft, wenn ich diese Anrufe machen . Der Job hört jedoch einfach auf zu feuern. Was könnte der Grund sein?

+0

Alle Frage .. aber ich habe die gleiche Situation, erinnern Sie sich, wie man es löst? – Guillermo

Antwort

0

Du bist wahrscheinlich um einen Anruf zu repeatForever() fehlt:

Trigger newTrigger = tb.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInMilliseconds(interval).repeatForever()).build(); 

Wenn Sie nicht entweder withRepeatCount(x) oder repeatForever() verwenden Sie, sind Sie den Scheduler zu sagen, dass der Job nur einmal ausgeführt werden soll. Und da der Job bereits ausgeführt wird, stoppt der Scheduler den Job einfach, wenn er beendet ist, da er bereits ausgeführt wurde.

Wenn Sie tatsächlich im vorgegebenen Intervall geplant nicht wollen unendliche Hinrichtung tun, sondern nur eine Ausführung nach x Minuten, nur verwenden:

Trigger newTrigger = tb.startAt(DateBuilder.futureTime(interval, DateBuilder.Interval.MINUTE)).build(); 

, die dafür besser geeignet scheint.

Verwandte Themen