Package com.skyline.manage.feed

Source Code of com.skyline.manage.feed.FeedManager

package com.skyline.manage.feed;

import java.util.Date;
import java.util.Timer;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

import com.skyline.manage.feed.task.FeedManageTask;

/**
* FeedManager,Feed系统的后台管理程序
*
* @author jairus
*
*/
public class FeedManager {

  /**
   * 日志
   */
  private static Logger logger = null;

  /**
   * 日志初始化文件的路径
   */
  private static String loggerInitialFilePath = null;

  /**
   * ConfigLoader初始化文件的路径
   */
  private static String configLoaderInitialFilePath = null;

  private static FeedManageTask task = null;

  private static Date firstTime = null;

  private static Long period = null;

  /**
   * 初始化整个系统
   *
   * @throws Exception
   */
  private static void intialSystem(String[] args) throws Exception {

    if (args.length == 2) {
      loggerInitialFilePath = args[0];
      configLoaderInitialFilePath = args[1];
    } else {
      loggerInitialFilePath = FeedManager.class.getClassLoader().getResource("//").getPath() + "config/log4j.properties";
      configLoaderInitialFilePath = FeedManager.class.getClassLoader().getResource("//").getPath() + "config/feed.properties";
    }

    PropertyConfigurator.configure(loggerInitialFilePath);
    logger = Logger.getLogger(FeedManager.class);

    ConfigLoader.initial(configLoaderInitialFilePath);

    FeedCollections.initial();
    FeedCollections.open();

    String lifes = ConfigLoader.getValue("feed.task.life");
    task = new FeedManageTask(FeedCollections.getPersonalFeedCollections(), lifes, FeedCollections.getSubscribedFeedCollections());

    String[] firstTimeStrs = ConfigLoader.getValue("feed.task.firstTime").split(":");
    firstTime = new Date();
    Date firstTimeTmp = (Date) firstTime.clone();
    firstTimeTmp.setHours(Integer.valueOf(firstTimeStrs[0]));
    firstTimeTmp.setMinutes(Integer.valueOf(firstTimeStrs[1]));
    firstTimeTmp.setSeconds(Integer.valueOf(firstTimeStrs[2]));
    if (firstTime.getTime() >= firstTimeTmp.getTime()) {
      firstTimeTmp.setDate(firstTimeTmp.getDate() + 1);
    }
    firstTime = firstTimeTmp;
    period = Long.valueOf(ConfigLoader.getValue("feed.task.period")) * 3600 * 100;

  }

  /**
   * main,入口
   *
   * @param args
   */
  public static void main(String[] args) {
    try {
      intialSystem(args);
      Timer timer = new Timer();
      timer.schedule(task, firstTime, period);

    } catch (Exception e) {
      logger.fatal("程序已经崩溃", e);
      // TODO:发送邮件,通知管理员
    }
  }

}
TOP

Related Classes of com.skyline.manage.feed.FeedManager

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.