private long getRefreshIntervalMs(boolean firstRefresh) {
    if (refreshNow) {
      return minTimeBetweenRefreshesMs;
    }
    if (firstRefresh) {
      return initialDelayMs;
    }
    return periodicRefreshMs;
  }
Thread safe utility that keeps registry end points used by {@link ConnectionRegistry} up to date.
By default the refresh happens periodically (configured via {@code intervalSecsConfigName}). The
refresh can also be triggered on demand via {@link #refreshNow()}. To prevent a flood of
on-demand refreshes we expect that any attempts two should be spaced at least
{@code minIntervalSecsConfigName} seconds apart.
hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegistryEndpointsRefresher.java