Beispiel #1
0
  private void falseCountCalculate() {
    boolean failureCountNeedAdd = false;
    // 本次结果正确,观察与上次的时间差是否满足设置间隔,不满足则认为失败
    if (this.currentResult) {
      // 如果上次状态成功,且上次间隔时间与这次间隔时间一致,但两次时间差大于设置间隔则代表有问题。此处等待将来linux端改为其他方式后,可以进行调整
      if (previousInf != null
          && previousInf.getStatus()
          && previousInf.getInterval().equals(interval)) {
        Interval timeInterval =
            new Interval(new DateTime(previousInf.getRecordDate()), DateTime.now());
        if (timeInterval.toDuration().getStandardMinutes() > interval) {
          failureCountNeedAdd = true;
        }
      }
    } else {
      // 如果上次状态成功,则失败总数要计为+1
      if (previousInf != null && previousInf.getStatus()) {
        failureCountNeedAdd = true;
      }
      // 第一条数据即为空
      else if (previousInf == null || oldFalseCount == 0) failureCountNeedAdd = true;
    }

    if (failureCountNeedAdd) this.falseCount = oldFalseCount + 1;
    else this.falseCount = oldFalseCount;
  }
 public void update() {
   Instant now = new Instant();
   TimeFrame timeFrameForInstant = findCurrentTimeFrame(now);
   if (timeFrameForInstant != null) {
     if (currentTimeFrame == null || !timeFrameForInstant.equals(currentTimeFrame)) {
       // timeframe changed
       currentTimeFrame = timeFrameForInstant;
       if (currentTimeFrame.getInterval().getStart().isBefore(now)) {
         // timeframe started in past; remaining time is less than MinRunningTime
         remainingMinRunningTime =
             Double.valueOf(
                     new Interval(now, currentTimeFrame.getInterval().getEnd()).toDurationMillis()
                         / 1000)
                 .longValue();
       } else {
         // timeframe starts in future
         remainingMinRunningTime = timeFrameForInstant.getMinRunningTime();
       }
     }
     Interval interval = null;
     if (running) {
       if (intervalBeginn == null) {
         // running was set to true after interval begin
         interval = new Interval(statusChangedAt, now);
       } else {
         // no status change in interval
         interval = new Interval(intervalBeginn, now);
       }
       intervalBeginn = now;
     } else if (intervalBeginn != null && statusChangedAt != null) {
       // running was set to false after interval begin
       interval = new Interval(intervalBeginn, statusChangedAt);
       intervalBeginn = null;
       statusChangedAt = null;
     }
     if (interval != null) {
       remainingMinRunningTime =
           remainingMinRunningTime
               - Double.valueOf(interval.toDuration().getMillis() / 1000).longValue();
     }
   }
 }