Пример #1
0
 /** 检查本机与注册中心的时间误差秒数是否在允许范围. */
 public void checkMaxTimeDiffSecondsTolerable() {
   int maxTimeDiffSeconds =
       Integer.parseInt(jobNodeStorage.getJobNodeData(ConfigurationNode.MAX_TIME_DIFF_SECONDS));
   if (-1 == maxTimeDiffSeconds) {
     return;
   }
   long timeDiff = Math.abs(System.currentTimeMillis() - jobNodeStorage.getRegistryCenterTime());
   if (timeDiff > maxTimeDiffSeconds * 1000L) {
     throw new TimeDiffIntolerableException(
         Long.valueOf(timeDiff / 1000).intValue(), maxTimeDiffSeconds);
   }
 }
Пример #2
0
 private void checkConflictJob() {
   if (jobNodeStorage.isJobNodeExisted(ConfigurationNode.JOB_CLASS)) {
     String registeredJobClassName = jobNodeStorage.getJobNodeData(ConfigurationNode.JOB_CLASS);
     String toBeRegisteredJobClassName =
         jobNodeStorage.getJobConfiguration().getJobClass().getCanonicalName();
     if (!toBeRegisteredJobClassName.equals(registeredJobClassName)) {
       throw new JobConflictException(
           jobNodeStorage.getJobConfiguration().getJobName(),
           registeredJobClassName,
           toBeRegisteredJobClassName);
     }
   }
 }
Пример #3
0
 /**
  * 获取作业执行脚本命令行.
  *
  * <p>仅脚本型作业有效.
  *
  * @return 脚本型作业执行脚本命令行
  */
 public String getScriptCommandLine() {
   return jobNodeStorage.getJobNodeData(ConfigurationNode.SCRIPT_COMMAND_LINE);
 }
Пример #4
0
 /**
  * 获取作业监控端口.
  *
  * @return 作业监控端口
  */
 public int getMonitorPort() {
   return Integer.valueOf(jobNodeStorage.getJobNodeData(ConfigurationNode.MONITOR_PORT));
 }
Пример #5
0
 /**
  * 获取作业分片策略实现类全路径.
  *
  * @return 作业分片策略实现类全路径
  */
 public String getJobShardingStrategyClass() {
   return jobNodeStorage.getJobNodeData(ConfigurationNode.JOB_SHARDING_STRATEGY_CLASS);
 }
Пример #6
0
 /**
  * 获取是否开启misfire.
  *
  * @return 是否开启misfire
  */
 public boolean isMisfire() {
   return Boolean.valueOf(jobNodeStorage.getJobNodeData(ConfigurationNode.MISFIRE));
 }
Пример #7
0
 /**
  * 获取是否开启失效转移.
  *
  * @return 是否开启失效转移
  */
 public boolean isFailover() {
   return isMonitorExecution()
       && Boolean.valueOf(jobNodeStorage.getJobNodeData(ConfigurationNode.FAILOVER));
 }
Пример #8
0
 /**
  * 获取是否流式处理数据.
  *
  * @return 是否流式处理数据
  */
 public boolean isStreamingProcess() {
   return Boolean.valueOf(jobNodeStorage.getJobNodeData(ConfigurationNode.STREAMING_PROCESS));
 }
Пример #9
0
 /**
  * 获取每次抓取的数据量.
  *
  * @return 每次抓取的数据量
  */
 public int getFetchDataCount() {
   return Integer.parseInt(jobNodeStorage.getJobNodeData(ConfigurationNode.FETCH_DATA_COUNT));
 }
Пример #10
0
 /**
  * 获取同时处理数据的并发线程数.
  *
  * <p>不能小于1. 仅ThroughputDataFlow作业有效.
  *
  * @return 同时处理数据的并发线程数
  */
 public int getConcurrentDataProcessThreadCount() {
   return Integer.parseInt(
       jobNodeStorage.getJobNodeData(ConfigurationNode.CONCURRENT_DATA_PROCESS_THREAD_COUNT));
 }
Пример #11
0
 /**
  * 获取统计作业处理数据数量的间隔时间.
  *
  * @return 统计作业处理数据数量的间隔时间
  */
 public int getProcessCountIntervalSeconds() {
   return Integer.parseInt(
       jobNodeStorage.getJobNodeData(ConfigurationNode.PROCESS_COUNT_INTERVAL_SECONDS));
 }
Пример #12
0
 /**
  * 获取是否监控作业运行时状态.
  *
  * @return 是否监控作业运行时状态
  */
 public boolean isMonitorExecution() {
   return Boolean.valueOf(jobNodeStorage.getJobNodeData(ConfigurationNode.MONITOR_EXECUTION));
 }
 @Test
 public void assertIsLeader() {
   when(jobNodeStorage.isJobNodeExisted("leader/election/host")).thenReturn(false, true);
   when(jobNodeStorage.getJobNodeData("leader/election/host")).thenReturn("mockedIP");
   assertTrue(leaderElectionService.isLeader());
 }