private Runnable createLeaderServiceTask()

in iep-spring-leader/src/main/java/com/netflix/iep/leader/LeaderService.java [121:142]


  private Runnable createLeaderServiceTask() {
    return () -> {
      try {
        if (running) {
          logger.info("Running an election.");
          leaderElector.runElection();
          timeSinceLastElection.set(registry.clock().wallTime());
          registry.counter(leaderElectionsCounterId.withTag("result", "success")).increment();
        } else {
          logger.info("Skipping election run.");
        }
      } catch (Throwable t) {
        final String throwableName = t.getCause() != null ?
            t.getCause().getClass().getSimpleName() : t.getClass().getSimpleName();

        final Id counterIdWithTags =
            leaderElectionsCounterId.withTag("result", "failure").withTag("error", throwableName);
        registry.counter(counterIdWithTags).increment();
        logger.warn("Leader election attempt failed", t);
      }
    };
  }