private void check()

in server/src/jetbrains/buildServer/queueManager/server/FreeSpaceQueuePauser.java [120:146]


  private void check() {
    if (isEnabled()) {
      final QueueState qs = myQueueStateManager.readQueueState();
      final Map<String, Long> dirsNoSpace = myDiskSpaceWatcher.getDirsNoSpace();
      final Long threshold = getThreshold();
      final Set<String> keys = new HashSet<>(dirsNoSpace.keySet()); // filter dirs that have enough space to run build
      keys.stream().filter(key -> dirsNoSpace.get(key) > threshold).forEach(dirsNoSpace::remove);
      if (qs.isQueueEnabled()) {
        if (!dirsNoSpace.isEmpty()) { // disable queue
          final String pauseReason = getPauseReason(dirsNoSpace, threshold);
          final QueueState newState = new QueueState(false, null, pauseReason, new Date(), ACTOR);
          myQueueStateManager.writeQueueState(newState);
          myGlobalHealthItemsTracker.recalculate();
          Loggers.SERVER.warn("Build queue was automatically paused. " + pauseReason);
        }
      } else {
        // queue is disabled. try to resume
        if (canResume(qs, dirsNoSpace)) {
          final String resumeReason = "Queue was automatically unpaused as the disk space became available";
          final QueueState newState = new QueueState(true, null, resumeReason, new Date(), ACTOR);
          myQueueStateManager.writeQueueState(newState);
          myGlobalHealthItemsTracker.recalculate();
          Loggers.SERVER.warn(resumeReason);
        }
      }
    }
  }