/******************************************************************************* * Copyright (c) 2014 hangum. * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Lesser Public License v2.1 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html * * Contributors: * hangum - initial API and implementation ******************************************************************************/ package com.hangum.tadpole.summary.report; import org.apache.log4j.Logger; import org.quartz.CronScheduleBuilder; import org.quartz.JobBuilder; import org.quartz.JobDetail; import org.quartz.JobKey; import org.quartz.Scheduler; import org.quartz.Trigger; import org.quartz.TriggerBuilder; import org.quartz.impl.StdSchedulerFactory; import org.quartz.impl.matchers.GroupMatcher; /** * DB Summary reporter * * @author hangum * */ public class DBSummaryReporter { private static final Logger logger = Logger.getLogger(DBSummaryReporter.class); public static String DB_SUMMARY_REPORT = "DB_SUMMARY_REPORT"; public static String DAILY_JOB = "DALY_JOB"; public static String TRIGGER_DB_SUMMARY_REPORT = "TRIGGER_DB_SUMMARY_REPORT"; public static String TRIGGER_DALY_JOB = "TRIGGER_DALY_JOB"; /** * Execute job * */ public static void executer() { // find job try { Scheduler scheduler = new StdSchedulerFactory().getScheduler(); for (String groupName : scheduler.getJobGroupNames()) { for(JobKey jobKey : scheduler.getJobKeys(GroupMatcher.jobGroupEquals(groupName))) { String jobName = jobKey.getName(); if(jobName.equals(DAILY_JOB)) return; } } } catch(Exception e) { logger.error("find summary reporter", e); } // execute job logger.info("start summary reporter"); JobDetail job = JobBuilder.newJob(DailySummaryReportJOB.class).withIdentity(DAILY_JOB, DB_SUMMARY_REPORT).build(); Trigger trigger = TriggerBuilder .newTrigger() .withIdentity(TRIGGER_DALY_JOB, TRIGGER_DB_SUMMARY_REPORT) .withSchedule(CronScheduleBuilder.cronSchedule("0 0 6 * * ?")) .build(); try { Scheduler scheduler = new StdSchedulerFactory().getScheduler(); scheduler.start(); scheduler.scheduleJob(job, trigger); } catch(Exception e) { logger.error("execute summary reporter", e); } } }