@Override
    public NetworkClientDelegate.PollResult poll(final long currentTimeMs) {
        if (this.coordinator != null)
            return EMPTY;

        if (coordinatorRequestState.canSendRequest(currentTimeMs)) {
            NetworkClientDelegate.UnsentRequest request = makeFindCoordinatorRequest(currentTimeMs);
            return new NetworkClientDelegate.PollResult(request);
        }

        return new NetworkClientDelegate.PollResult(coordinatorRequestState.remainingBackoffMs(currentTimeMs));
    }
Poll for the FindCoordinator request.
If we don't need to discover a coordinator, this method will return a PollResult with Long.MAX_VALUE backoff time and an empty list.
If we are still backing off from a previous attempt, this method will return a PollResult with the remaining backoff time and an empty list.
Otherwise, this returns will return a PollResult with a singleton list of UnsentRequest and Long.MAX_VALUE backoff time.
Note that this method does not involve any actual network IO, and it only determines if we need to send a new request or not.

@param currentTimeMs current time in ms.
@return {@link NetworkClientDelegate.PollResult}. This will not be {@code null}.
clients/src/main/java/org/apache/kafka/clients/consumer/internals/CoordinatorRequestManager.java