SchedulerFactory.java
上传用户:qing5858
上传日期:2015-10-27
资源大小:6056k
文件大小:2k
源码类别:

搜索引擎

开发平台:

Java

  1. /**
  2.  * $Id: SchedulerFactory.java,v 1.7 2003/04/02 20:55:17 vanrogu Exp $
  3.  */
  4. package net.javacoding.jspider.core.task;
  5. import net.javacoding.jspider.core.SpiderContext;
  6. import net.javacoding.jspider.core.logging.LogFactory;
  7. import net.javacoding.jspider.core.logging.Log;
  8. import net.javacoding.jspider.core.task.impl.DefaultSchedulerProvider;
  9. import net.javacoding.jspider.core.task.impl.SchedulerMonitorThread;
  10. import net.javacoding.jspider.core.util.config.*;
  11. public class SchedulerFactory {
  12.     public static final int DEFAULT_MONITORING_INTERVAL = 1000;
  13.     public Scheduler createScheduler(SpiderContext context) {
  14.         PropertySet props = ConfigurationFactory.getConfiguration().getJSpiderConfiguration();
  15.         PropertySet schedulerProps = new MappedPropertySet ( ConfigConstants.CONFIG_SCHEDULER, props);
  16.         Class providerClass = schedulerProps.getClass(ConfigConstants.CONFIG_SCHEDULER_PROVIDER, DefaultSchedulerProvider.class);
  17.         Log log = LogFactory.getLog(SchedulerFactory.class);
  18.         log.info("TaskScheduler provider class is '" + providerClass + "'");
  19.         try {
  20.             SchedulerProvider provider = (SchedulerProvider) providerClass.newInstance();
  21.             Scheduler scheduler = provider.createScheduler();
  22.             PropertySet monitoringProps = new MappedPropertySet(ConfigConstants.CONFIG_SCHEDULER_MONITORING, schedulerProps);
  23.             if ( monitoringProps.getBoolean(ConfigConstants.CONFIG_SCHEDULER_MONITORING_ENABLED, false ) ) {
  24.               int interval = monitoringProps.getInteger(ConfigConstants.CONFIG_SCHEDULER_MONITORING_INTERVAL, DEFAULT_MONITORING_INTERVAL);
  25.               new SchedulerMonitorThread ( scheduler, context.getEventDispatcher(), interval );
  26.             }
  27.             return scheduler;
  28.         } catch (InstantiationException e) {
  29.             log.error("InstantiationException on Scheduler", e);
  30.             return null;
  31.         } catch (IllegalAccessException e) {
  32.             log.error("IllegalAccessException on Scheduler", e);
  33.             return null;
  34.         }
  35.     }
  36. }