package org.opendedup.sdfs.filestore.gc;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.opendedup.sdfs.Main;
import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerFactory;
import org.quartz.impl.StdSchedulerFactory;
public class SDFSGCScheduler {
private static Logger log = Logger.getLogger("sdfs");
Scheduler sched = null;
public SDFSGCScheduler() {
try {
Properties props = new Properties();
props.setProperty("org.quartz.threadPool.class", "org.quartz.simpl.SimpleThreadPool");
props.setProperty("org.quartz.threadPool.threadCount", "1");
props.setProperty("org.quartz.threadPool.threadPriority", Integer.toString(Thread.MIN_PRIORITY));
log.info("Scheduling Garbage Collection Jobs for SDFS");
SchedulerFactory schedFact = new StdSchedulerFactory(props);
sched = schedFact.getScheduler();
sched.start();
JobDetail ccjobDetail = new JobDetail("fdisk", null, FDISKJob.class);
CronTrigger cctrigger = new CronTrigger("fdiskTrigger","group1", Main.fDkiskSchedule);
sched.scheduleJob(ccjobDetail, cctrigger);
log.info("Garbage Collection Jobs Scheduled");
} catch (Exception e) {
log.log(Level.SEVERE, "Unable to schedule SDFS Garbage Collection", e);
}
}
public void stopSchedules() {
try {
sched.unscheduleJob("fdisk", "fdiskTrigger");
} catch (Exception e) {
// TODO Auto-generated catch block
// e.printStackTrace();
}
}
}