Quarz Java, das einen Job wieder aufnimmt, führt ihn oft aus

Für meine Bewerbung erstelle ich Jobs und plane sie mit CronTriggers. Jeder Job hat nur einen Trigger und sowohl der Jobname als auch der Triggername sind gleich. Keine Jobs teilen einen Auslöser.

Nun, wenn ich so einen Cron-Trigger erstelle"0/1 * * * *?" Dies weist den Job an, jede Sekunde ausgeführt zu werden, und funktioniert einwandfrei.

Das Problem tritt auf, wenn ich den Job zum ersten Mal anhalte, indem ich anrufe:

scheduler.pauseJob(jobName, jobGroup);

und dann den Job wieder aufnehmen, sagen wir 50 Sekunden mit:

scheduler.resumeJob(jobName, jobGroup);

Was ich sehe ist, dass in diesen 50 Sekunden der Job nicht wie gewünscht ausgeführt wurde. Aber in dem Moment, in dem ich den Job wieder aufnehme, sehe ich 50 Ausführungen des Jobs gleichzeitig !!!

Ich dachte, dass dies auf die Standardeinstellung für die Fehlzündungsanweisung zurückzuführen ist, aber auch nachdem die Fehlzündungsanweisung des Auslösers bei der Erstellung auf diese Einstellung gesetzt wurde:

trigger.setMisfireInstruction(CronTrigger.MISFIRE_INSTRUCTION_DO_NOTHING);

Das gleiche passiert. Kann jemand einen Weg vorschlagen, dies zu beheben?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage