void execute() {
      action.accept(this);
      if (retryCount < MAX_RETRIES) {
        this.delay = retryDelayFunction.apply(this.delay);
        timerId =
            OptionalLong.of(
                timerUtil.setTimer(
                    this.delay,
                    () -> {
                      retryCounter.inc();
                      retryCount++;
                      execute();
                    }));
      } else {
        Optional.ofNullable(inflightInteractions.get(peerId))
            .ifPresent(
                peerInterationStateMap -> {
                  peerInterationStateMap.remove(expectedType);
                  if (peerInterationStateMap.isEmpty()) {
                    inflightInteractions.remove(peerId);
                  }
                });
      }
    }
Executes the action associated with this state. Sets a "boomerang" timer to itself.
ethereum/p2p/src/main/java/org/hyperledger/besu/ethereum/p2p/discovery/internal/PeerDiscoveryController.java