package com.github.signed.sandboxe.quartz.domain;
class EnsureJobIsRunning {
private final SchedulerFacade schedulerFacade;
public EnsureJobIsRunning(SchedulerFacade schedulerFacade) {
this.schedulerFacade = schedulerFacade;
}
public void ensureRunning(JobFacts facts) {
if (schedulerFacade.isJobBeingExecuted(facts.triggerKey)) {
System.out.print("-job already running-");
return;
}
startJob(facts);
}
private void startJob(JobFacts facts) {
System.out.print("-starting job-");
schedulerFacade.rescheduleExistingOrFallback(facts.triggerKey, facts.triggerForOneImmediateExecution());
}
}