Quartz Jobs werden gesammelt

OnDemand

Top Contributor
Hallo zusammen,

ich habe einen QuartzJob mit @DisallowConcurrentExecution
Der Job wird alle 20 Minuten ausgeführt, es kann aber sein, dass er mal 50 Minuten braucht. Der eine Job läuft, es werden keine anderen ausgeführt obwohl die 20 Min um sind. Soweit so gut. Sobald der erste fertig ist, gehts sofort weiter als würden die "aufgelaufenen" Jobs dann nach und nach abgearbeitet. Gibts es das bei Quartz? Konnte dazu nichts finden ob es so eine Funktion gibt.

Das möchte ich gern abstellen, es sollen keine Jobs nachträglich ausgeführt werden, welche nicht augeführt werden durften.
 

OnDemand

Top Contributor
Uhh danke, was das für ein komischer Methodenname.

ich hab nur die folgenden, wird dann das erste am sinnvollsten sein oder?
1643567748085.png
 

OnDemand

Top Contributor
Hi @sascha-sphw ,

das Thema würd ich gern nochmal aufgreifen. Hier zwei Methoden welche Trigger bauen (aus Usereingaben DB). Deine Methode
Java:
.withMisfireHandlingInstructionNextWithRemainingCount()
steht in der aktuellen Quarzversion nicht zur Verfügung. Hast du eine Idee?

Java:
private Trigger getTriggerByFixTime(ImportJob importJob, InventoryLocation inventoryLocation) {
        int minute = getFromDb....;
        Trigger trigger = TriggerBuilder.newTrigger()
                .withIdentity(inventoryLocation.getNameShort())
                .withSchedule(dailyAtHourAndMinute(hour, minute))
                .build();

        return trigger;
    }

    private Trigger getTriggerByEveryMinute(ImportJob importJob, InventoryLocation inventoryLocation) {
        String cron = "0 0/" + importJob.getIntervall() + " * * * ?";
        Trigger trigger = TriggerBuilder.newTrigger()
                .withIdentity(inventoryLocation.getNameShort())
                .startNow()
                .withSchedule(cronSchedule(cron))
                .build();
        return trigger;
    }
 

Ähnliche Java Themen

Neue Themen


Oben