All Downloads are FREE. Search and download functionalities are using the official Maven repository.

step.core.scheduler.housekeeping.HousekeepingJobFactory Maven / Gradle / Ivy

There is a newer version: 3.27.0
Show newest version
package step.core.scheduler.housekeeping;

import org.quartz.Job;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.spi.JobFactory;
import org.quartz.spi.TriggerFiredBundle;

import java.util.HashMap;
import java.util.Map;
import java.util.function.Supplier;

public class HousekeepingJobFactory implements JobFactory {

    private final Map, Supplier> jobSuppliers = new HashMap<>();

    public HousekeepingJobFactory() {
    }

    @Override
    public Job newJob(TriggerFiredBundle triggerFiredBundle, Scheduler scheduler) throws SchedulerException {
        Class jobClass = triggerFiredBundle.getJobDetail().getJobClass();
        Supplier jobSupplier = jobSuppliers.get(jobClass);
        if (jobSupplier == null) {
            throw new SchedulerException("No housekeeping job is registered for class: " + jobClass);
        } else {
            return jobSupplier.get();
        }
    }

    public void registerJob(Class job, Supplier supplier) {
        jobSuppliers.put(job, supplier);
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy