package com.github.signed.sandboxe.quartz.domain;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.impl.StdSchedulerFactory;
import java.io.IOException;
import java.util.Properties;
import java.util.concurrent.TimeUnit;
public class JobScheduler {
private final Properties schedulerProperties = new Properties();
public void loadDefaultPropertiesFromQuartz() throws IOException {
schedulerProperties.load(Scheduler.class.getResourceAsStream("/org/quartz/quartz.properties"));
}
public void misfireThreshold(long amount, TimeUnit unit) {
schedulerProperties.put("org.quartz.jobStore.misfireThreshold", Long.toString(unit.toMillis(amount)));
}
public Scheduler createCustomizedScheduler() throws IOException, SchedulerException {
StdSchedulerFactory factory = new StdSchedulerFactory();
factory.initialize(schedulerProperties);
return factory.getScheduler();
}
}