SummaryScheduler.java
Upload User: gdxydsw
Upload Date: 2019-01-29
Package Size: 16721k
Code Size: 4k
Category:

Java Develop

Development Platform:

Java

  1. /*
  2.  * Copyright (c) JForum Team
  3.  * All rights reserved.
  4.  * 
  5.  * Redistribution and use in source and binary forms, 
  6.  * with or without modification, are permitted provided 
  7.  * that the following conditions are met:
  8.  * 
  9.  * 1) Redistributions of source code must retain the above 
  10.  * copyright notice, this list of conditions and the 
  11.  * following  disclaimer.
  12.  * 2)  Redistributions in binary form must reproduce the 
  13.  * above copyright notice, this list of conditions and 
  14.  * the following disclaimer in the documentation and/or 
  15.  * other materials provided with the distribution.
  16.  * 3) Neither the name of "Rafael Steil" nor 
  17.  * the names of its contributors may be used to endorse 
  18.  * or promote products derived from this software without 
  19.  * specific prior written permission.
  20.  * 
  21.  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT 
  22.  * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
  23.  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 
  24.  * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
  25.  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
  26.  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 
  27.  * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE 
  28.  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
  29.  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
  30.  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
  31.  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 
  32.  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
  33.  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 
  34.  * IN CONTRACT, STRICT LIABILITY, OR TORT 
  35.  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
  36.  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
  37.  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
  38.  * 
  39.  * Class created on Jul 15, 2005
  40.  * The JForum Project
  41.  * http://www.jforum.net
  42.  */
  43. package net.jforum.summary;
  44. import java.io.IOException;
  45. import java.text.ParseException;
  46. import net.jforum.util.preferences.ConfigKeys;
  47. import net.jforum.util.preferences.SystemGlobals;
  48. import org.apache.log4j.Logger;
  49. import org.quartz.CronTrigger;
  50. import org.quartz.JobDetail;
  51. import org.quartz.Scheduler;
  52. import org.quartz.SchedulerException;
  53. import org.quartz.Trigger;
  54. import org.quartz.impl.StdSchedulerFactory;
  55. /**
  56.  * Schedule the summaries to be sent to the users.
  57.  * 
  58.  * @see net.jforum.summary.SummaryJob
  59.  * 
  60.  * @author Franklin S. Dattein (<a href="mailto:franklin@portaljava.com">franklin@portaljava.com</a>)
  61.  * @version $Id: SummaryScheduler.java,v 1.6 2006/10/10 00:40:53 rafaelsteil Exp $
  62.  */
  63. public class SummaryScheduler
  64. {
  65. private static Scheduler scheduler;
  66. private static Logger logger = Logger.getLogger(SummaryScheduler.class);
  67. private static boolean isStarted;
  68. /**
  69.  * Starts the summary Job. Conditions to start: Is not started yet and is enabled on the file
  70.  * SystemGlobasl.properties. The to enable it is "summary.enabled"
  71.  * (ConfigKeys.SUMMARY_IS_ENABLED).
  72.  * 
  73.  * @throws SchedulerException
  74.  * @throws IOException
  75.  */
  76. public static void startJob() throws SchedulerException
  77. {
  78. boolean isEnabled = SystemGlobals.getBoolValue(ConfigKeys.SUMMARY_IS_ENABLED);
  79. if (!isStarted && isEnabled) {
  80. String filename = SystemGlobals.getValue(ConfigKeys.QUARTZ_CONFIG);
  81. String cronExpression = SystemGlobals.getValue("org.quartz.context.summary.cron.expression");
  82. scheduler = new StdSchedulerFactory(filename).getScheduler();
  83. Trigger trigger = null;
  84. try {
  85. trigger = new CronTrigger(SummaryJob.class.getName(), "summaryJob", cronExpression);
  86. logger.info("Starting quartz summary expression " + cronExpression);
  87. scheduler.scheduleJob(new JobDetail(SummaryJob.class.getName(), "summaryJob", SummaryJob.class),
  88. trigger);
  89. scheduler.start();
  90. }
  91. catch (ParseException e) {
  92. e.printStackTrace();
  93. }
  94. }
  95. isStarted = true;
  96. }
  97. }