package edu.harvard.i2b2.crc.quartz; import java.util.Date; import org.quartz.JobDataMap; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.SimpleTrigger; public class StartJobHandler { Scheduler sch = null; public StartJobHandler(Scheduler sch) { this.sch = sch; } public void startNonQuartzJob(String domainId, String projectId, String userId, String instanceId, long timeout) throws SchedulerException { JobDataMap jobDataMap = new JobDataMap(); jobDataMap.put(JobParamName.DOMAIN_ID, domainId); jobDataMap.put(JobParamName.PROJECT_ID, projectId); jobDataMap.put(JobParamName.USER_ID, userId); jobDataMap.put(JobParamName.INSTANCE_ID, instanceId); jobDataMap.put(JobParamName.TIMEOUT, timeout); FirstJob generalJob = new FirstJob(); generalJob.executeNonQuartzJob(jobDataMap); } public void startJob(String domainId, String projectId, String userId, String instanceId, long timeout) throws SchedulerException { long startTime = System.currentTimeMillis() + 1000L; SimpleTrigger trigger = new SimpleTrigger("AnalysisJobTrigger", null, new Date(startTime), null, 0, 0L); long endTime = startTime + 3000; trigger.setEndTime(new Date(startTime)); /* * InitialContext ctx = new InitialContext(); Scheduler scheduler = * (Scheduler) ctx.lookup("Quartz"); Trigger trigger = * TriggerUtils.makeDailyTrigger("myTrigger", 0, 0); //a trigger which * gets fired on each midnight trigger.setStartTime(new Date()); * * JobDetail job = new JobDetail("jobName", "jobGroup", Executor.class); */ JobDetail job = new JobDetail(projectId + instanceId, "group1", FirstJob.class); job.getJobDataMap().put(JobParamName.DOMAIN_ID, domainId); job.getJobDataMap().put(JobParamName.PROJECT_ID, projectId); job.getJobDataMap().put(JobParamName.USER_ID, userId); job.getJobDataMap().put(JobParamName.INSTANCE_ID, instanceId); job.getJobDataMap().put(JobParamName.TIMEOUT, timeout); sch.scheduleJob(job, trigger); } }